有没有办法做这样的事情:
ArrayList<String>.removeAll(ArrayList<Integer>)
Run Code Online (Sandbox Code Playgroud)
随着ArrayList<Integer>我想删除的索引.我知道我可以遍历索引列表并使用remove(index),但我想知道是否有一个单命令方式这样做.
我知道如何把这个迭代放到一行,我的问题是,如果有一种方法由oracle实现.
您可以使用a Stream来迭代索引以删除.但是,请注意首先移除最高指数,以避免移动其他元素以移除位置.
public void removeIndices(List<String> strings, List<Integer> indices)
{
indices.stream()
.sorted(Comparator.reverseOrder())
.forEach(strings::remove);
}
Run Code Online (Sandbox Code Playgroud)
要从Strings 列表中删除,这将起作用,调用正确的remove(int)方法.如果您在a上尝试此操作List<Integer>,则必须在remove(E)调用.mapToInt(Integer::intValue)之前通过调用来避免调用forEach.
| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |