Java 集合排序
我们可以对以下元素进行排序:
字符串对象
包装类对象
用户定义的类对象
Collections 类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型,则可以使用TreeSet。但是,我们无法对List的元素进行排序。 Collections类提供用于对List类型元素的元素进行排序的方法。
用于对列表元素进行排序的Collections类的方法
公共无效排序(列表列表): 用于对列表的元素进行排序。列表元素必须为Comparable类型。
注意: String类和Wrapper类实现Comparable接口。因此,如果存储字符串或包装类的对象,则将是可比较的。
对字符串对象进行排序的示例
import java.util.*;
class TestSort1{
public static void main(String args[]){
ArrayList<String> al=new ArrayList<String>();
al.add("Viru");
al.add("Saurav");
al.add("Mukesh");
al.add("Tahir");
Collections.sort(al);
Iterator itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
示例以相反的顺序对字符串对象进行排序
import java.util.*;
class TestSort2{
public static void main(String args[]){
ArrayList<String> al=new ArrayList<String>();
al.add("Viru");
al.add("Saurav");
al.add("Mukesh");
al.add("Tahir");
Collections.sort(al,Collections.reverseOrder());
Iterator i=al.iterator();
while(i.hasNext()) {
System.out.println(i.next());
}
}
}
对包装程序类对象进行排序的示例
import java.util.*;
class TestSort3{
public static void main(String args[]){
ArrayList al=new ArrayList();
al.add(Integer.valueOf(201));
al.add(Integer.valueOf(101));
al.add(230);
//internally will be converted into objects as Integer.valueOf(230)Collections.sort(al);
Iterator itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
对用户定义的类对象进行排序的示例
import java.util.*;
class Student implements Comparable<
Student>
{
public String name;
public Student(String name) {
this.name = name;
}
public int compareTo(Student person) {
return name.compareTo(person.name);
}
}
public class TestSort4 {
public static void main(String[] args) {
ArrayList<
Student>
al=new ArrayList<
Student>
();
al.add(new Student("Viru"));
al.add(new Student("Saurav"));
al.add(new Student("Mukesh"));
al.add(new Student("Tahir"));
Collections.sort(al);
for (Student s : al) {
System.out.println(s.name);
}
}
}