【发布时间】:2018-11-20 16:57:49
【问题描述】:
我有一个列表列表,我想使用 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() 的签名。谁能给我一个提示?
【问题讨论】:
-
简单的
if-else有什么问题? -
@NicholasK 我用不同大小的参数多次调用 getTheMinList,我写的只是一个小例子。
标签: java java-stream