温馨提示×

java如何对集合进行排序

小亿
83
2024-09-03 08:33:39
栏目: 编程语言

在Java中,可以使用Collections.sort()方法对集合进行排序。这个方法可以对List集合进行自然排序或者根据提供的比较器进行排序。

以下是一些示例:

  1. 对List集合进行自然排序:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = 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);
    }
}
  1. 对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) {
        List<String> words = new ArrayList<>();
        words.add("apple");
        words.add("banana");
        words.add("cherry");
        words.add("orange");

        Comparator<String> stringLengthComparator = new Comparator<String>() {
            @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);
    }
}
  1. 使用Java 8的Lambda表达式简化代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> words = 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()方法创建一个新的已排序列表。

0