我有一个ArrayList和来自控制台的另一个int。 我想使用stream()来查找列表中最接近的数字。 为什么这不起作用:在java中使用.stream()的整数
Scanner scn = new Scanner(System.in);
int numOfRows = scn.nextInt();
int nextNumber = scn.nextInt();
for (int i = 0; i < numOfRows; i++) {
String[] input = scn.nextLine().split(" ");
ArrayList<Integer> nums = new ArrayList<>();
for (int j = 0; j < input.length; j++) {
nums.add(Integer.parseInt(input[j]));
}
nextNumber = nums.stream().filter(x -> x > nextNumber).findFirst();
System.out.println(nextNumber);
}
你忘了告诉我们编译器的错误信息(这段代码不能编译)。 – Seelenvirtuose 2015-02-07 15:00:22
您将需要对过滤的列表进行排序或对其应用最小()操作。 findFirst()不是最接近的,但是大于nextNumber的第一个数字。 – eckes 2015-02-07 17:53:35