當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Collections sort()用法及代碼示例


Java Collections 類的 sort() 方法用於對指定列表中出現的元素進行排序。 Java sort() 方法有兩種不同類型,可以根據其參數進行區分。這些是:

  1. Java 集合 sort(list) 方法
  2. Java 集合 sort(list, comp) 方法

Java 集合 sort(list) 方法

該方法用於對指定集合列表中出現的元素進行升序排序。

Java 集合 sort(list, comp) 方法

此方法用於根據指定比較器引入的順序對指定列表進行排序。

用法

以下是 sort() 方法的聲明:

public static <T extends Comparable<? super T>> void sort(List<T> list)
public static <T> void sort(List<T> list, Comparator<? super T> comp)

參數

參數 描述 必需/可選
list 這是將要排序的列表。 Required
comp 比較器決定了列表的順序。 Required

返回

sort() 方法不返回任何內容。

異常

UnsupportedOperationException - 如果指定的列表或其 list-iterator 不支持設置操作,則此方法拋出異常。

ClassCastException - 如果列表包含不可相互比較的元素(例如,字符串和整數),則此方法拋出異常。

例子1

import java.util.*;
public class CollectionsSortExample1 {
	public static void main(String[] args) {		
	    //Create an array of string objects
	    String str[] = { "Java","Python","Android","One","Ruby","Node.js"};
	    //Create list
	    List<String> list = new ArrayList<>(Arrays.asList(str));
	    System.out.println("Specified value before sort:"+list);
	    //Sort the list
	    Collections.sort(list);
	    System.out.println("Specified value after sort:"+list);
	    }
}

輸出:

Specified value before sort:[Java, Python, Android, One, Ruby, Node.js]
Specified value after sort:[Android, Java, Node.js, One, Python, Ruby]

例子2

import java.util.*;
public class CollectionsSortExample2 {
	public static void main(String[] args) {		
	    //Create an array of string objects
	    String str[] = { "Java","Python","Android","One","Ruby","Node.js"};
	    //Create list
	    List<String> list = new ArrayList<>(Arrays.asList(str));
	    System.out.println("Value before sort:"+list);
	    //Sort the list according to specified comparator
	    Collections.sort(list,Collections.reverseOrder());
	    System.out.println("Sort Value according to specified comparator:"+list);
	    }
}

輸出:

Value before sort:[Java, Python, Android, One, Ruby, Node.js]
Sort Value according to specified comparator:[Ruby, Python, One, Node.js, Java, Android]

例子3

import java.util.*;
public class CollectionsSortExample3 {
	public static void main(String[] args) {
		ArrayList<Integer> 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<Integer> itr=al.iterator();  
		while(itr.hasNext()){  
			System.out.println(itr.next());  
		 	}         
	    }
}

輸出:

101
201
230

示例 4

import java.util.*;
public class CollectionsSortExample4 {
	public static void main (String[] args)
    {
        ArrayList<Student> arr = new ArrayList<Student>();
        arr.add(new Student(101, "Java", "USA"));
        arr.add(new Student(103, "Ruby", "China"));
        arr.add(new Student(102, "Android", "India"));
        System.out.println("Data before sorted-");
        for (int i=0; i<arr.size(); i++)
            System.out.println(arr.get(i));
        //Sorting data according to specified comparator
        Collections.sort(arr, new Sortbyroll());
        System.out.println("Data after sorted by rollno-");
        for (int i=0; i<arr.size(); i++)
            System.out.println(arr.get(i));
    }
}
//Class which represents a student data.
class Student
{
	int rollno;
	String name, address;
	//Constructor
	public Student(int rollno, String name, String address)
	{
		this.rollno = rollno;
		this.name = name;
		this.address = address;
	}
	//Prints student data
	public String toString()
	{
		return this.rollno + " " + this.name + " " + this.address;
	}
}
class Sortbyroll implements Comparator<Student>
{
	//Used for sorting in ascending order of roll number
	public int compare(Student a, Student b)
	{
		return a.rollno - b.rollno;
	}
}

輸出:

Data before sorted-
101 Java USA
103 Ruby China
102 Android India
Data after sorted by rollno-
101 Java USA
102 Android India
103 Ruby China






相關用法


注:本文由純淨天空篩選整理自 Java Collections sort() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。