【发布时间】:2017-08-21 19:00:33
【问题描述】:
我有以下简单的方法:
public void exercise2(List<String> list) {
list.stream().filter(s -> s.length() % 2 == 0).collect(Collectors.toList());
}
还有简单的测试,没有成功完成:
@Test
public void testExercise2() {
Lesson1 lesson1 = new Lesson1();
List<String> list = new ArrayList<>(Arrays.asList("alpha", "bravo", "charlie",
"delta", "echo", "foxtrot"));
List<String> inputList = new ArrayList<>(list);
lesson1.exercise2(list);
assertEquals("Input " + inputList.toString(), Arrays.asList("echo"), list);
}
【问题讨论】:
-
流从不修改原始列表。
-
就这样做
list = list.stream().filter(s -> s.length() % 2 == 0).collect(Collectors.toList()); -
请包括您遇到的确切错误/故障。这将帮助人们确定原因和可能的解决方案。
-
@SLaks 但是当返回类型为 void 时如何更改列表?
-
如果要修改列表,请尝试
removeIf()。