📅  最后修改于: 2023-12-03 15:08:55.591000             🧑  作者: Mango
在Java中,可以使用 Collections
类对 LinkedList
进行排序。Collections
类提供了多种排序算法,如快速排序、归并排序等。
下面是一个示例程序,演示了如何使用 Collections.sort()
方法对 LinkedList
进行排序:
import java.util.Collections;
import java.util.LinkedList;
public class LinkedListSortingExample {
public static void main(String[] args) {
LinkedList<Integer> numbers = new LinkedList<>();
numbers.add(5);
numbers.add(1);
numbers.add(9);
numbers.add(4);
numbers.add(3);
System.out.println("Before sorting: " + numbers);
Collections.sort(numbers);
System.out.println("After sorting: " + numbers);
}
}
上述程序使用 LinkedList
存储整数,并使用 Collections.sort()
方法对其进行排序。输出如下:
Before sorting: [5, 1, 9, 4, 3]
After sorting: [1, 3, 4, 5, 9]
需要注意的是,LinkedList
中存储的元素类型必须实现 Comparable
接口,或者使用另一个参数指定 Comparator
对象。例如,对于存储自定义类型的 LinkedList
,需要实现该类型的比较方法,或者创建一个比较器对象。
下面是一个示例程序,演示了如何使用自定义比较器对 LinkedList
中的字符串按照长度排序:
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
public class LinkedListSortingExample {
public static void main(String[] args) {
LinkedList<String> words = new LinkedList<>();
words.add("apple");
words.add("banana");
words.add("orange");
words.add("pear");
words.add("kiwi");
System.out.println("Before sorting: " + words);
Comparator<String> lengthComparator = new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
};
Collections.sort(words, lengthComparator);
System.out.println("After sorting: " + words);
}
}
上述程序使用自定义比较器对 LinkedList
中的字符串按照长度排序。输出如下:
Before sorting: [apple, banana, orange, pear, kiwi]
After sorting: [kiwi, pear, apple, banana, orange]
需要注意的是,在创建比较器对象时,可以使用 lambda 表达式(Java 8 及以上版本)来简化代码:
Comparator<String> lengthComparator = (s1, s2) -> s1.length() - s2.length();