我們有三種方法可以刪除集合中的元素,下面介紹兩種方法,
一種是傳統的for循環,另一種是使用Iterator迭代器(推薦使用),簡單的介紹如下:
for循環刪除元素:
public class ForRemove<T>
{
??? public void forDelete(List<T> list, T obj){ ?
?????? ?
??????? for(int i = 0;i < list.size(); i++){ ?
??????????? if (obj == list.get(i)) ?
??????????? { ?
??????????????? list.remove(obj); ?
??????????? } ?
??????? } ?
??? } ?
?? ?
??? //main中調用
??? public static void main(String[] args)
?? ?{
?? ??? ?ForRemove<String> re = new ForRemove<>();
?? ??? ?
?? ??? ?List<String> listRemove = new ArrayList<>();
?? ??? ?
?? ??? ?listRemove.add("1");
?? ??? ?
?? ??? ?listRemove.add("2");
?? ??? ?
?? ??? ?listRemove.add("3");
?? ??? ?
?? ??? ?listRemove.add("4");
?? ??? ?
?? ??? ?listRemove.add("5");
?? ??? ?
?? ??? ?re.forDelete(listRemove, "4");
?? ??? ?
?? ??? ?System.out.println(listRemove.toString());
?? ?}
}
輸出的結果是:[1, 2, 3, 5]
iterator迭代器刪除元素:
public class IteratorRemove<T>
{
?? ?public void iteratorDelete(List<T> list, T obj)
?? ?{ ?
??????? Iterator<T> it = list.iterator();
?????? ?
??????? while(it.hasNext())
??????? { ?
??????????? T item = it.next();
?????????? ?
??????????? if (item.equals(obj))
??????????? { ?
??????????????? it.remove();//刪除當前項
??????????? } ?
??????? } ?
??? }
?? ?
?? ?public static void main(String[] args)
?? ?{
?? ??? ?IteratorRemove<String> iteratorRemove = new IteratorRemove<>();//實例化
?? ??? ?
?? ??? ?List<String> listRemove = new ArrayList<>();
?? ??? ?
?? ??? ?listRemove.add("1");
?? ??? ?
?? ??? ?listRemove.add("2");
?? ??? ?
?? ??? ?listRemove.add("3");
?? ??? ?
?? ??? ?listRemove.add("4");
?? ??? ?
?? ??? ?listRemove.add("5");
?? ??? ?
?? ??? ?iteratorRemove.iteratorDelete(listRemove, "4");
?? ??? ?
?? ??? ?System.out.println(listRemove.toString());
?? ?}
}
輸出的結果為:[1, 2, 3, 5]