日期:2014-05-20  浏览次数:21074 次

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) {