使用 lambda 表达式对 LinkedList 进行排序
Sorting a LinkedList with a lambda expression
你好。我想对新创建的 LinkedList 进行升序排序,列表的所有元素都是随机创建的。我的任务是用 Comparator 对它们进行排序,但我不允许编写实现 Comparator 的 class,而我应该通过 lambda 表达式对其进行排序。到目前为止,这是我的代码:
public List<Integer> methodName(int length, int min, int max){
LinkedList<Integer> intll = new LinkedList<>();
for (int i =0; i<length;i++){
intll.add(ThreadLocalRandom.current().nextInt(min,max+1));
//Sorting part
到目前为止,我尝试使用 Collections 和 List 中的排序方法,但无法进一步帮助我。
非常感谢您提前帮助我。
import java.util.stream.Collectors;
public List<Integer> methodName(int length, int min, int max) {
LinkedList<Integer> intll = new LinkedList<>();
for (int i =0; i<length;i++)
intll.add(ThreadLocalRandom.current().nextInt(min,max+1));
return intll.stream().sorted((a, b) -> a - b).collect(Collectors.toList());
}
如果要更改排序顺序,请使用 b - a 而不是 a - b
LinkedList<Integer> sortedIntll = intll.stream().sorted(Comparator.comparingInt(Integer::valueOf)).collect(Collectors.toCollection(LinkedList::new));
你好。我想对新创建的 LinkedList 进行升序排序,列表的所有元素都是随机创建的。我的任务是用 Comparator 对它们进行排序,但我不允许编写实现 Comparator 的 class,而我应该通过 lambda 表达式对其进行排序。到目前为止,这是我的代码:
public List<Integer> methodName(int length, int min, int max){
LinkedList<Integer> intll = new LinkedList<>();
for (int i =0; i<length;i++){
intll.add(ThreadLocalRandom.current().nextInt(min,max+1));
//Sorting part
到目前为止,我尝试使用 Collections 和 List 中的排序方法,但无法进一步帮助我。 非常感谢您提前帮助我。
import java.util.stream.Collectors;
public List<Integer> methodName(int length, int min, int max) {
LinkedList<Integer> intll = new LinkedList<>();
for (int i =0; i<length;i++)
intll.add(ThreadLocalRandom.current().nextInt(min,max+1));
return intll.stream().sorted((a, b) -> a - b).collect(Collectors.toList());
}
如果要更改排序顺序,请使用 b - a 而不是 a - b
LinkedList<Integer> sortedIntll = intll.stream().sorted(Comparator.comparingInt(Integer::valueOf)).collect(Collectors.toCollection(LinkedList::new));