数组列表排序

时间:2010-01-20 04:27:52

标签: java sorting

您如何按字母顺序或数字顺序对ArrayList进行排序?我不确定按字母顺序或数字顺序排序数组的方法是如何工作的。

谢谢!

4 个答案:

答案 0 :(得分:3)

Collections.sort方法允许用Comparator对列表进行排序,以实现您的特定排序方法(例如字母或数字排序)。

答案 1 :(得分:2)

[Collections.sort] [1]将按默认排序排序。这是字符串的词法(字母)和数字数据类型的数字。如果您需要非标准订购,也可以指定自己的比较器。

例如:

ArrayList list = new ArrayList();
list.add(1);
list.add(10);
list.add(-1);
list.add(5);

Collections.sort( list );

[1]:http://java.sun.com/javase/6/docs/api/java/util/Collections.html#sort(java.util.List,java.util.Comparator)

答案 2 :(得分:1)

通常使用Collections.sort()方法对简单数组列表进行排序。

以下是一个例子。

首先实现Comparable接口,然后覆盖compareTo方法。

public class Student implements Comparable {
    private String studentname;
    private int rollno;
    private int studentage;

    public Student(int rollno, String studentname, int studentage) {
        this.rollno = rollno;
        this.studentname = studentname;
        this.studentage = studentage;
    }

    @Override
    public int compareTo(Student comparestu) {
        int compareage=((Student)comparestu).getStudentage();
    }

    @Override
    public String toString() {
        return "[ rollno=" + rollno + ", name=" + studentname + ", age=" + studentage + "]";
    }

}

现在我们可以在ArrayList上调用Collections.sort

import java.util.*;
public class ArrayListSorting  {

    public static void main(String args[]){
       ArrayList<Student> arraylist = new ArrayList<Student>();
       arraylist.add(new Student(100, "Nuwan", 19));
       arraylist.add(new Student(200, "Kamal", 18));
       arraylist.add(new Student(205, "Sunil", 20));

       Collections.sort(arraylist);

       for(Student str: arraylist){
            System.out.println(str);
       }
    }
}

答案 3 :(得分:0)

Collections.sort(list,new Comparator() { 

    int compare(T o1, T o2) {
        // implement your own logic here
    }


    boolean equals(Object obj) {
        // implement your own logic here
    }
}