请用lambda表达式求出List<Integer>list的最大10个数 List<String> A=Arrays.asList("1","3","5","2","7"); List<String> B =Arrays.asList("1","6","4","2" "9");得到:resultA ={"3" "5" "7"} resultB = {"6" "4" "9"}
时间: 2023-07-03 19:22:59 浏览: 89
好的,针对第一个问题,可以使用如下lambda表达式来求出List<Integer> list的最大10个数:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
List<Integer> top10 = list.stream()
.sorted(Comparator.reverseOrder())
.limit(10)
.collect(Collectors.toList());
System.out.println(top10);
```
上述lambda表达式首先将List<Integer> list转为Stream,然后使用sorted方法将其降序排序,接着使用limit方法获取前10个元素,最后使用collect方法将其转为List并返回。运行上述代码,可以得到List<Integer> list的最大10个数。
针对第二个问题,可以使用如下lambda表达式来实现:
```
List<String> A = Arrays.asList("1", "3", "5", "2", "7");
List<String> B = Arrays.asList("1", "6", "4", "2", "9");
List<String> resultA = A.stream()
.filter(B::contains)
.sorted()
.collect(Collectors.toList());
System.out.println(resultA);
List<String> resultB = B.stream()
.filter(A::contains)
.sorted()
.collect(Collectors.toList());
System.out.println(resultB);
```
上述lambda表达式首先使用filter方法过滤出两个List中相同的元素,然后使用sorted方法将其升序排序,接着使用collect方法将其转为List并返回。运行上述代码,可以得到List<String> A和List<String> B中相同的元素并排序后的结果。
阅读全文