java - Java 中的集合排序

标签 java sorting comparator

这种类型有什么问题?它无法正常工作。

 public List<LibRegistration> getLibraryRegistrationsSortedByTypeAndName()
    {
        List<LibRegistration> l = getLibRegs();
        Collections.sort(l, new Comparator<LibRegistration>() {
            public int compare(LibRegistration o1, LibRegistration o2) {
               return o1.getLibraryType().compareTo(o2.getLibraryType()) != 0?o1.getLibraryType().compareTo(o2.getLibraryType()):o1.getLibraryName().compareTo(o2.getLibraryName());
            }
        });
        return l;
    }

最佳答案

没有错,更清楚:

        public int compare(LibRegistration o1, LibRegistration o2) {
            int cmp = o1.getLibraryType().compareTo(o2.getLibraryType());
            if (cmp == 0)
                cmp = o1.getLibraryName().compareTo(o2.getLibraryName());
            return cmp;
        }

虽然不允许空值并且 compareTo 定义明确。

关于java - Java 中的集合排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15544219/

相关文章:

java - Hibernate 延迟加载代理与其他框架不兼容

mysql - 如何在 3 组之间轮换数据?

qt - 如何在Qt中对QList <QVariant>进行排序?

java - 如何将路径变量映射到 spring-rest 中的实体

java - 无法访问 War 文件中的图像

c# - 如何对泛型类进行排序?

java - Java中多个字符串比较LinkedList

Java收集列表但指定预定义的前两个元素顺序

java - Comparator.comparing().reversed() 反转所有早期的比较器?

java - 为什么 BufferedImage 不能正常工作?!!是因为我用错了吗?