删除arraylist中的元素

1边遍历边删除Arraylist中的元素,以下给出了各种可能的版本。

/**
 * @author jy
 * @date 2018年6月13日
 * 

Description:

*/ package sort; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; /** * @author jy * @param * */ public class DelArrayList { /** * * @param list * @param data *

* Description: 删除list中的所有的Data *

*/ public void delAll(ArrayList list, E data) { for (int i = 0; i < list.size(); i++) { if (list.get(i) == data) { list.remove(i); i--;// 遍历且删除过的位置重新遍历一遍,以免有相邻的重复元素未删除 } } } /** * * @param list * @param data *

* Description:遍历list,找到要删除的元素,删一个即可 *

*/ public void delete(ArrayList list, E data) { for (int i = 0; i < list.size(); i++) { if (list.get(i) == data) { list.remove(i); break; } } } /** * * @param list * @param data *

* Description: 先遍历,后删除 *

*/ public void traversalDel(ArrayList list, E data) { Set set = new HashSet(); for (int i = 0; i < list.size(); i++) { if (list.get(i) == data) { set.add(data); } } list.removeAll(set); } /** * @param args *

* Description: *

*/ public static void main(String[] args) { DelArrayList app = new DelArrayList(); ArrayList list = new ArrayList(); list.add(1); list.add(2); list.add(2); list.add(3); list.add(4); // app.delete(list, 2); // app.delAll(list, 2); app.traversalDel(list, 2); for (int data : list) { System.out.println(data); } DelArrayList appStr = new DelArrayList(); ArrayList strList = new ArrayList(); strList.add("a"); strList.add("b"); strList.add("c"); strList.add("d"); strList.add("d"); // appStr.delete(strList, "d"); // appStr.delAll(strList, "d"); appStr.traversalDel(strList, "c"); for (String data : strList) { System.out.println(data); } } }

你可能感兴趣的:(删除arraylist中的元素)