List 中的对象如何根据某个字段进行排序?急!
我有一个ArrayList,里面放的是一些对象,我根据对象的某个字段对ArrayList中的对象进行排序,但是不知道怎么做?请知道的帮一下,谢谢!
------解决方案-------------------- List arr = new ArrayList();
arr.add("哈哈");
arr.add("2");
arr.add("1");
arr.add("5");
arr.add("3");
arr.add("4");
Object[] temp = arr.toArray();
Arrays.sort(temp);
arr = (List) Arrays.asList(temp);
System.out.println(arr);
------解决方案-------------------- Java code
List list = new ArrayList();
//......
Collections.sort(list, new MyComparator());
class MyComparator implements Comparator
{
//这里的o1和o2就是list里任意的两个对象,然后按需求把这个方法填完整就行了
public int compare(Object o1, Object o2)
{
//比较规则
}
}
------解决方案-------------------- 探讨 Java code List list = new ArrayList(); //...... Collections.sort(list, new MyComparator()); class MyComparator implements Comparator { //这里的o1和o2就是list里任意的两个对象,然后按需求把这个方法填完整就行了 public int compare(Object o1, Object o2) { //比较…
------解决方案-------------------- 探讨 List arr = new ArrayList(); arr.add("哈哈"); arr.add("2"); arr.add("1"); arr.add("5"); arr.add("3"); arr.add("4"); Object[] temp = arr.toArray(); Arrays.sort(temp); arr = (List) Arrays.asList(temp); System.out.println(arr);
------解决方案-------------------- 重写public int compare(Object o1, Object o2)这个方法.
------解决方案-------------------- 探讨 引用: Java code List list = new ArrayList(); //...... Collections.sort(list, new MyComparator()); class MyComparator implements Comparator { //这里的o1和o2就是list里任意的两个对象,然后按需求把这个方法填完整就行了 public int compare(Object o1, Object o2) …
------解决方案-------------------- 5楼说的对~~~~~~~~~~~~~~~~~~~~~~~
------解决方案-------------------- import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Test1 { private String a; private String b; public Test1() { } public Test1(String a, String b) { this.a = a; this.b = b; } public String getA() { return a; } public void setA(String a) { this.a = a; } public String getB() { return b; } public void setB(String b) { this.b = b; } private List mySort(List arr) { // 交换排序->冒泡排序 Test1 temp = null; boolean exchange = false; for (int i = 0; i < arr.size(); i++) { exchange = false; for (int j = arr.size() - 2; j >= i; j--) { if (((Test1) arr.get(j + 1)).getA().compareTo( ((Test1) arr.get(j)).getA()) >= 0) {