当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java List sort()用法及代码示例


List 接口的 sort() 方法根据比较器中指定的顺序对给定列表进行排序。该列表必须是可修改的,否则会引发异常。

用法

default void sort(Comparator<? super E> c)

参数

参数 'c' 表示用于比较列表元素的 Comparator。对于空值,使用自然排序。

返回

NA

抛出:

ClassCastException- 如果列表包含使用比较器不能相互比较的元素

UnsupportedOperationException- 如果列表的 list-iterator 不支持排序操作

IllegalArgumentException- 如果发现比较器违反了比较器协议。

例子1

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class JavaListSubListExample3 {
public static void main(String[] args) {
        List<String> list= new LinkedList<>();
list.add("Renu");
list.add("Heera");
list.add("Vijay");
list.add("Geetanjali");
System.out.println("List:"+list);
//will sort the string acc to the alphabets
Collections.sort(list);
System.out.println("Sorted List:"+list);
    }
}

输出:

List:[Renu, Heera, Vijay, Geetanjali]
Sorted List:[Geetanjali, Heera, Renu, Vijay]

例子2

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

class Employee {

int id;
    String name;

public Employee(int id, String name) {
this.id = id;
this.name = name;
    }
public String toString()
    {
return this.id + " " + this.name ;

    }
}
class SortById implements Comparator<Employee> {
// Used for sorting in ascending order of ID
public int compare(Employee a, Employee b)
    {
return a.id - b.id;
    }
}

// Main class
class JavaListSubListExample2 {
static int i=1;
public static void main (String[] args) {
        List<Employee> list = new ArrayList<Employee>();
        Employee employee1 = new Employee(15019, "Patanjali");
        Employee employee2 = new Employee(13198, "Geetanjali");
        Employee employee3 = new Employee(12112, "Anjali");
list.add(employee1);
list.add(employee2);
list.add(employee3);
System.out.println("Unsorted List:");
for (Employee val:list) {
System.out.println(i++ +". "+val);
        }
Collections.sort(list, new SortById());
System.out.println();
System.out.println(" Sorted List:");
int i=1;
for (Employee val:list) {
System.out.println(i++ +". "+val);
        }
    }
}

输出:

Unsorted List:
1. 15019 Patanjali
2. 13198 Geetanjali
3. 12112 Anjali

 Sorted List:
1. 12112 Anjali
2. 13198 Geetanjali
3. 15019 Patanjali




相关用法


注:本文由纯净天空筛选整理自 Java List sort() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。