java - 如何使用对象名称字段按字母顺序对 List<Object> 进行排序

标签 java list

我有一个对象列表,例如 List<Object> p .我想使用对象名称字段按字母顺序对该列表进行排序。对象包含 10 个字段,名称字段是其中之一。

if (list.size() > 0) {
    Collections.sort(list, new Comparator<Campaign>() {
        @Override
        public int compare(final Object object1, final Object object2) {
        return String.compare(object1.getName(), object2.getName());
        }
    } );
}

但是没有什么像 String.compare..?

最佳答案

根据您的代码,它看起来像您的 Comparator已用 Campaign 参数化.这仅适用于 List<Campaign> .此外,您正在寻找的方法是 compareTo .

if (list.size() > 0) {
  Collections.sort(list, new Comparator<Campaign>() {
      @Override
      public int compare(final Campaign object1, final Campaign object2) {
          return object1.getName().compareTo(object2.getName());
      }
  });
}

或者如果您使用的是 Java 1.8

list
  .stream()
  .sorted((object1, object2) -> object1.getName().compareTo(object2.getName()));

最后一条评论——检查列表大小是没有意义的。排序将适用于空列表。

关于java - 如何使用对象名称字段按字母顺序对 List<Object> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432581/

相关文章:

c# - 按数字方式对 List<String[]> 进行排序

java - 如何在哈希集中进行比较,如果第二个元素相等则返回第二个值?

java - 为什么在 Collection 中声明的方法也在 List Interface 中重复?

python - 如何将键值元组列表转换为字典?

java - 底部导航栏 fragment 多次

java - Android 图形 API

java - Elasticsearch 索引后执行外部操作

java - 如何将 XML 文档导出到文件系统

java - 在列表中查找元素并使用 stream() 更改它

r - 获取列表中共享元素的所有组合