1. 程式人生 > >list元素去重的問題情況

list元素去重的問題情況

附上問題程式碼情況

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]