java - 如何对 ArrayList<CustomObject> 中的元素进行分组

标签 java arrays collections arraylist grouping

有没有一种简单快速的方法来对 Java 中的 ArrayList 中的元素进行分组? 我在问是否已经有办法不用我自己实现了?类似

Collections.sort(monuments,new objectComparator());

编辑: 我有一个对象列表,其中有一个名为类别的字段,该列表显示给用户。我希望首先显示 category_type==1 的对象,依此类推。

我不能用比较器实现这个,因为比较器的工作方式是这样的:

如果第一个值更大则返回 int a>0 返回一个

最佳答案

实际上这可以通过比较器来实现:

public int compareTo(Monument o) {
    Integer otherCategory = o.getCategoryType();
    Integer thisCategory = this.getCategoryType();
    return thisCategory.compareTo(otherCategory);
}

如果它们相同,比较器将返回 0,如果 thisCategory 小于 otherCategory,则返回 -1,如果 thisCategory 大于,则返回 1比 otherCategory

下面是基于这个想法的单元测试:

public class SortTest {

    @Test
    public void test() {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(1);

        System.out.println("Unsorted: " + list);

        Collections.sort(list);

        System.out.println("Sorted: " + list);
    }

}

输出:

Unsorted: [1, 2, 3, 4, 1]
Sorted: [1, 1, 2, 3, 4]

关于java - 如何对 ArrayList<CustomObject> 中的元素进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989020/

相关文章:

java - CompareTo 可能返回 0,替代 TreeSet/TreeMap

algorithm - 集合的简单通用哈希函数

java - 使用 RxJAVA 和 DAO 更新数据库插入的 UI

c - 如何在不使用数组存储原始文件内容的情况下对文件中的一百万个整数进行排序并保存在另一个文件中?

javascript - 从 JSON 填充列表(不是 HTML)

C - 数组。仅更改特定值

c++ - 具有不同接口(interface)的对象集合

java - 在 HTML 表单中发送 API key

Java 警告 : [unchecked] unchecked conversion

java - 关于 Java 泛型下限用法 : ? super T