Java 集合排序
精华
小牛编辑
199浏览
2023-03-14
1 集合元素的排序
我们可以对以下元素进行排序:
- 字符串对象
- 包装类对象
- 用户自定义对象
Collections类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型,则可以使用TreeSet。但是,我们无法对List的元素进行排序。Collections类提供用于对List类型元素的元素进行排序的方法。
2 Collections sort方法
public void sort(List list)
用于对List的元素进行排序。List中的元素必须实现Comparable接口。
注意:String类和包装类都实现了Comparable接口。因此,如果在集合中存储字符串对象和包装类对象,是可以排序的。
3 字符串正序排序
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java Collections 排序的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
ArrayList<String> al=new ArrayList<String>();
al.add("Eric");
al.add("Jack");
al.add("Rose");
al.add("Lucy");
Collections.sort(al);
Iterator itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
输出结果为:
Eric
Jack
Lucy
Rose
4 字符串倒序排序
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java Collections 排序的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
ArrayList<String> al=new ArrayList<String>();
al.add("Eric");
al.add("Jack");
al.add("Rose");
al.add("Lucy");
Collections.sort(al,Collections.reverseOrder());
Iterator i=al.iterator();
while(i.hasNext())
{
System.out.println(i.next());
}
}
}
输出结果为:
Rose
Lucy
Jack
Eric
5 包装类型排序
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java Collections 排序的例子
*/
import java.util.*;
class Demo{
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
6 自定义对象排序
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java Collections 排序的例子
*/
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 Demo {
public static void main(String[] args) {
ArrayList<Student> al=new ArrayList<Student>();
al.add(new Student("Eric"));
al.add(new Student("Jack"));
al.add(new Student("Mark"));
al.add(new Student("Rose"));
Collections.sort(al);
for (Student s : al) {
System.out.println(s.name);
}
}
}
输出结果为:
Eric
Jack
Mark
Rose