Java Collections 类的 sort() 方法用于对指定列表中出现的元素进行排序。 Java sort() 方法有两种不同类型,可以根据其参数进行区分。这些是:
- Java 集合 sort(list) 方法
- 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()用法及代码示例
- Java Collections synchronizedSortedSet()用法及代码示例
- Java Collections synchronizedNavigableSet()用法及代码示例
- Java Collections singleton()用法及代码示例
- Java Collections swap()用法及代码示例
- Java Collections synchronizedSet()用法及代码示例
- Java Collections synchronizedSortedMap()用法及代码示例
- Java Collections synchronizedNavigableMap()用法及代码示例
- Java Collections synchronizedMap()用法及代码示例
- Java Collections shuffle()用法及代码示例
- Java Collections synchronizedCollection()用法及代码示例
- Java Collections synchronizedList()用法及代码示例
- Java Collections singletonList()用法及代码示例
- Java Collections singletonMap()用法及代码示例
- Java Collections checkedQueue()用法及代码示例
- Java Collections unmodifiableNavigableSet()用法及代码示例
- Java Collections checkedSet()用法及代码示例
- Java Collections copy()用法及代码示例
- Java Collections checkedMap()用法及代码示例
- Java Collections fill()用法及代码示例
注:本文由纯净天空筛选整理自 Java Collections sort() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。