集合中的排序

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

  1. 字符串对象
  2. 包装类对象
  3. 用户自定义类对象

Collections类提供了用于对集合元素进行排序的静态方法。如果集合元素属于Set类型,我们可以使用TreeSet进行排序。然而,我们不能对List的元素进行排序。Collections类提供了对List类型元素进行排序的方法。

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

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

注意:String类和包装类实现了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

对包装类对象进行排序的示例

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); // 在内部将转换为对象: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, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想