📜  Java collection中的排序

📅  最后修改于: 2020-10-13 00:38:50             🧑  作者: Mango

在集合中排序

我们可以对以下元素进行排序:

  • 字符串对象
  • 包装类对象
  • 用户定义的类对象

Collections类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型,则可以使用TreeSet。但是,我们无法对List的元素进行排序。 Collections类提供了对List类型元素的元素进行排序的方法。

用于对List元素进行排序的Collections类的方法

public void sort(List list):用于对List的元素进行排序。列表元素必须是Comparable类型。

注意:String类和Wrapper类实现Comparable接口。因此,如果存储字符串或包装类的对象,则将是可比较的。

字符串对象排序示例

import java.util.*;
class TestSort1{
public static void main(String args[]){

ArrayList al=new ArrayList();
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 al=new ArrayList();
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 {
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 al=new ArrayList();
  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