Java教程

Java Collections sort()

Java Collections 类的 sort()方法用于对指定列表中存在的元素进行排序。有 两种不同类型的Java sort()方法,可以根据其参数进行区分。这些是:
Java Collections sort(list)方法 Java Collections sort(list,comp)方法

Java Collections sort(list)方法

此方法用于按指定的升序对出现在指定集合列表中的元素进行排序。

Java Collections 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 这是要排序的列表。 必需
comp 由比较器确定列表的顺序。 必需

返回

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

异常

UnsupportedOperationException -如果指定列表或其列表迭代器不支持set操作,则此方法引发异常。
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
  

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4