list元素去重的問題情況
阿新 • • 發佈:2018-12-09
附上問題程式碼情況
public static void listTest2(){ List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("c"); list.add("d"); list.add("f"); list.add("d"); list.add("b"); System.out.println(list); //allpointName與newres一定是對應的 那麼取出來才是正規的 StringBuilder builder = new StringBuilder(); //重複的下標集合 List<Integer> repeatList = new ArrayList<Integer>(); //沒有重複的集合 List<Integer> noRepeatList = new ArrayList<Integer>(); for(int i = 0;i<list.size();i++){ if(builder.indexOf(","+list.get(i)+",") > -1) { repeatList.add(i); } else { builder.append(",").append(list.get(i)).append(","); noRepeatList.add(i); } } System.out.println(noRepeatList); System.out.println(repeatList); /*根據相同的已經找出集合中重複的下標與未重複的下表 移除已重複的下標 將list集合中重複的元素移除掉 這就是為什麼 */ for(int i = 0;i<repeatList.size();i++){ list.remove(repeatList.get(i)); } System.out.println(list); }
執行的結果是
list: [a, b, c, c, d, f, d, b] noRepeatList : [0, 1, 2, 4, 5] repeatList : [3, 6, 7] list ; [a, b, c, c, d, f, d, b]