有没有一种简单快速的方法来对 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/