我有一个Integer []集合,我想从中删除一些元素,但是似乎通常的remove方法不起作用。除了迭代和比较Integer []的每个元素之外,是否还有其他解决方法。下面是此问题的测试代码。
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String args[]){
List<Integer[]> subSet = new ArrayList<Integer[]>();
subSet.add(new Integer[]{0,1,2,3,4});
subSet.add(new Integer[]{0,1,2,3,5});
subSet.add(new Integer[]{0,0,0,0,0});
//prune this collection by removing an Integer[]
Integer[] elementToRemove = {0,0,0,0,0};
System.out.println( "Before " + subSet.size());
subSet.remove(elementToRemove);
System.out.println( "After " + subSet.size());
//
}
}
绝对有可能iterator
。由于数组不覆盖equals
,因此需要静态Arrays
方法。
public static void main(String args[]){
List<Integer[]> subSet = new ArrayList<Integer[]>();
subSet.add(new Integer[]{0,1,2,3,4});
subSet.add(new Integer[]{0,1,2,3,5});
subSet.add(new Integer[]{0,0,0,0,0});
//prune this collection by removing an Integer[]
Integer[] elementToRemove = {0,0,0,0,0};
System.out.println( "Before " + subSet.size());
//get your Integer[] iterator
Iterator<Integer[]> it = subSet.iterator();
//for each element in the array
while(it.hasNext()){
//check if it is equal to the elementToRemove
if(Arrays.equals(it.next(), elementToRemove)){
//remove it
it.remove();
}
}
System.out.println( "After " + subSet.size());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句