在Java中,可以使用Collections.sort()
方法对集合进行排序。这个方法可以对List集合进行自然排序或者根据提供的比较器进行排序。
以下是一些示例:
- 对List集合进行自然排序:
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) { Listnumbers = new ArrayList<>(); numbers.add(5); numbers.add(3); numbers.add(1); numbers.add(4); numbers.add(2); Collections.sort(numbers); System.out.println("Sorted list: " + numbers); } }
- 对List集合根据提供的比较器进行排序:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Main { public static void main(String[] args) { Listwords = new ArrayList<>(); words.add("apple"); words.add("banana"); words.add("cherry"); words.add("orange"); Comparator stringLengthComparator = new Comparator () { @Override public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } }; Collections.sort(words, stringLengthComparator); System.out.println("Sorted list by length: " + words); } }
- 使用Java 8的Lambda表达式简化代码:
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) { Listwords = new ArrayList<>(); words.add("apple"); words.add("banana"); words.add("cherry"); words.add("orange"); Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length())); System.out.println("Sorted list by length: " + words); } }
注意:Collections.sort()
方法不适用于非可修改的集合(如通过Collections.unmodifiableList()
创建的集合)。在这种情况下,可以使用stream().sorted()
方法创建一个新的已排序列表。