如何从List中排除某些元素

Joe*_*Joe 1 java

我有一个包含以下元素的List.

List<String> numbers = new ArrayList<String>();
numbers.add("1");
numbers.add("2");
numbers.add("3");
Run Code Online (Sandbox Code Playgroud)

如何在没有说明的情况下获得List的子集"1"?是否有一个更简单的函数可以对任何类型的List工作.

Rob*_*een 7

这个问题含糊不清.

numbers.remove("1");将删除任何列表中的第一个"1"实例.如果您可能有重复的元素,请使用numbers.removeAll (Collections.singletonList ("1"));删除所有元素.

另一方面,如果要获取列表的子范围,请使用该subList方法.

  • 有没有办法在不修改原始列表的情况下实现此目的.我假设您应该在每次要删除时克隆它 (2认同)

kir*_*ilv 6

我认为这可以帮助你:

final List<String> numbers = Arrays.asList("1", "2", "3");

final List<String> filtered = numbers.stream()
                                     .filter(num -> !"1".equals(num))
                                     .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)