【问题标题】:Sorting in GWT based on String基于字符串在 GWT 中排序
【发布时间】:2015-06-10 19:52:53
【问题描述】:

我需要根据客户端 GWT 代码中的 MyDto.name 对列表进行排序。目前我正在尝试这样做......

Collections.sort(_myDtos, new Comparator<MyDto>() {

        @Override
        public int compare(MyDto o1, MyDto o2) {
        return o1.getName().compareTo(o2.getName());
        }
});

不幸的是,排序不是我所期望的,因为大写字母在小写字母之前。例如 ESP 在 aESP 之前。

【问题讨论】:

    标签: java gwt sorting


    【解决方案1】:

    这就是你想要的坏男孩:String.CASE_INSENSITIVE_ORDER

    【讨论】:

    • 我们在哪里添加这个?
    • Collections.sort 的第二个参数
    【解决方案2】:

    这是因为大写字母在小写字母之前。听起来你想要一个不区分大小写的比较:

    Collections.sort(_myDtos, new Comparator<MyDto>() {
    
            @Override
            public int compare(MyDto o1, MyDto o2) {
            return o1.getName().toLower().compareTo(o2.getName().toLower());
            }
    });
    

    toLower() 是你的朋友。

    【讨论】:

    【解决方案3】:

    我通常会选择这个:

    @Override
    public int compare(MyDto o1, MyDto o2) {
        return o1.getName().compareToIgnoreCase(o2.getName());
    }
    

    因为在我看来,您以其他方式执行的任何字符串操作(toLower() 或 toUpper())都会变得效率较低。这样,至少您不会创建两个新字符串。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多