gpt4 book ai didi

java - 在列表列表中找到最小大小的列表

转载 作者:搜寻专家 更新时间:2023-10-31 19:42:57 26 4
gpt4 key购买 nike

我有一个列表列表,我想使用 java Stream 返回具有最小大小的列表。

这是我尝试过的:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Example {
public static void main( String[] args ) {
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(0);list1.add(2);list1.add(3);

ArrayList<Integer> list2 = new ArrayList<>();
list2.add(0);list2.add(2);list2.add(3);list2.add(4);

System.out.println( getTheMinList(list1,list2).size());
}

public static ArrayList<Integer> getTheMinList(ArrayList<Integer>... lists) {
return Arrays.stream(lists)
.map(list->list.size())
/*here i stoped*/
;
}
}

程序应该打印 3,因为第一个列表的大小最小。

请注意,我无法更改 getTheMinList() 的签名。谁能给我一个提示?

最佳答案

您可以使用 Stream.min 比较 List.size:

public static List<Integer> getTheMinList(List<Integer>... lists){
return Arrays.stream(lists)
.min(Comparator.comparingInt(List::size))
.orElse(new ArrayList<>());
}

或者如果你能摆脱 var-args 和未经检查的赋值可能会更好

private static List<Integer> getTheMinList(List<List<Integer>> lists){
return lists.stream()
.min(Comparator.comparingInt(List::size))
.orElse(new ArrayList<>());
}
// invoked as
System.out.println(getTheMinList(List.of(list1, list2)).size());

关于java - 在列表列表中找到最小大小的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53397893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com