我们可以对以下元素进行排序:
- 字符串对象
- 包装类对象
- 用户定义的类对象
Collections类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型, 则可以使用TreeSet。但是, 我们无法对List的元素进行排序。 Collections类提供用于对List类型元素的元素进行排序的方法。 |
public void sort(List list):用于对List的元素进行排序。列表元素必须是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());
}
}
}
【在集合中排序】立即测试
Mukesh
Saurav
Tahir
Viru
以相反顺序对字符串对象进行排序的示例
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());
}
}
}
Viru
Tahir
Saurav
Mukesh
对Wrapper类对象进行排序的示例
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());
}
}
}
101
201
230
对用户定义的类对象进行排序的示例
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);
}
}
}
Mukesh
Saurav
Tahir
Viru
推荐阅读
- Java中的HashMap工作
- Java中的Properties类
- Java TreeSet类
- Java TreeMap类
- Java队列接口
- Java Map接口
- Java列表接口
- Java LinkedList类
- 电脑上的OpenAL是什么(卸载OpenAL是否安全?提示和指南)