
与 版本 8 的 Java, 介绍了 新方法, 可用于这些类型 集合. 这种方法是 removeif(), 它接受作为 参数 一个 谓词 (谓词) 定义 条件 那应该 删除 的 元素 集合中.
作为一个结果, 返回 布尔值 它返回 真正 事件中该项目已被删除, o 假 在相反的情况下.
假设我们有类型的集合 堆栈 (堆栈) 的 链 (字符串) 和我们想要 删除 那些 链 他们满足 一定条件下:
1 2 3 4 5 6 7 8 | Collection<String> misPalabras = new Stack<>(); misPalabras.add( "Prueba" ); misPalabras.add( "de" ); misPalabras.add( "uso" ); misPalabras.add( "nuevo" ); misPalabras.add( "metodo" ); misPalabras.removeIf ( s -> s.contains("ue") ); |
此代码将创建 集合的类型堆栈链 和 删除 这些元素的链 包含 子字符串 ‘欧盟‘. 在这种情况下, 已删除的项目 ‘测试‘ 和 ‘新增功能‘.
ES 重要 强调的是, 并非所有的集合 他们支持元素的消除. 如果你不支持它, 它会屈服 异常 类型的 UnsupportedOperationException 消除问题的要素的尝试. 这些集合是, 举个例子, 数组列表:
1 2 | Collection<String> misPalabras = Arrays.asList( "Prueba", "de", "uso", "nuevo", "metodo" ); misPalabras.removeIf( s -> s.contains("ue") ); |
在这个场合, 它将推出 异常 因为方法 Arrays.asList() 返回数组的类型 java.utils.Arrays.ArrayList, 这是的 只有读 和 固定的大小, 其他比 通常使用 类型 java.util.ArrayList, 这本身就是 可修改.

我们的留言或输入到论坛