java - 根据其成员项的 'toString' 值按字母顺序对 Java 集合进行排序

标签 java sorting collections

假设我有一个名为 Foo 的用户定义 Java 类,例如:

public class Foo 
{

    private String aField;

    @Override
    public String toString()
    {
        return aField;
    }

}

还有一个集合,例如:

List<Foo> aList;

我要做的是根据每个成员返回的“.toString()”值按字母顺序对列表进行排序。

我尝试过使用 Collections.sort() 方法,但结果不是我想要的。 我需要做什么才能做到这一点?

最佳答案

Collections.sort(fooList,
                 new Comparator<Foo>()
                 {
                     public int compare(Foo f1, Foo f2)
                     {
                         return f1.toString().compareTo(f2.toString());
                     }        
                 });

假设 toString 永远不会返回 null 并且列表中没有 null 项。

关于java - 根据其成员项的 'toString' 值按字母顺序对 Java 集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554769/

相关文章:

java - 在 Java 中从数组中提取值

java - 使用 If 子句包围 Logger 以避免冗余的 String 构造

java - 使用 Java REST API 接收两次相同的参数名称

python - 在python中对并行列表进行排序 - 第一项降序,第二项升序

java - 当 List 实现的对象将其自己的对象存储为列表中的元素时,为什么 hashCode 和 equals 方法不起作用

即使已使用 javap 验证类路径和 .class 文件,Java 也找不到符号错误

python - 在Python中,当两个文件都未排序时,我应该如何有效地对一个大文件进行排序以匹配另一个大文件中的公共(public)元素?

bash - 如何对行组进行排序?

java - 如何将 Object 类型转换为 List<Object> 类型?

java - 需要使用集合按名称和十六进制值对颜色进行排序