Java遇到需要去重(去掉重複)的問題怎麼辦
阿新 • • 發佈:2018-12-17
JAVA去重
去掉在List中物件屬性重複的物件
/** * 去重 * 需要去掉學生中分數相同的 */ //建立一個set Set set = new HashSet(); //記錄set的大小 int nowsize = set.size(); //用存放去重後的物件 List<XrMesProduceProc> listTemp = new ArrayList(); //迴圈 for(int i=0;i<students.size();i++){ //將set放入一個學生的分數 set.add(students.get(i).getScore()); //如果set大小不等於之前的大小,說明分數成功放入,則執行以下 if (nowsize != set.size()){ //將本次循壞的物件放入新的ArrayList中 listTemp.add(xrMesProduceProcs.get(i)); //用nowsize 記錄大小,用於下一次循壞的比較 size = set.size(); } }
應用
- 可用於實際專案下拉框,需要查詢資料庫的資料時,如果出現重複的資料,使用該方法去重。
去除List中的重複元素
// 第一種:通過建立新的集合來儲存不重複的元素 //需要去重的List List<String> list1 = new ArrayList<Integer>(); //新的List List<String> list2 = new ArrayList<Integer>(); for (String in : list1) { if (!list2.contains(in)) { list2.add(in); } } System.out.println(list2); // 第二種:把集合元素先刪除,後新增不重複的元素 //需要去重的List List<String> list1 = new ArrayList<Integer>(); for (int i = 0; i < list1.size(); i++) { String in = list1.remove(i); if (!list1.contains(in)) { list.add(i, in); } else { i--; } } System.out.println(list1); // 第三種:利用set集合自動去重的特性 //需要去重的List List<String> list1 = new ArrayList<Integer>(); System.out.println(list1); Set set = new HashSet(list); //新的List List list2 = new ArrayList(set); System.out.println(list2); // 第四種:利用treeSet集合自動去重的特性 //需要去重的List List<String> list1 = new ArrayList<Integer>(); System.out.println(list1); TreeSet treeSet = new TreeSet(list); //新的List List list2 = new ArrayList(treeSet); System.out.println(list2); //treeSet的預設排序的升序,根據實際情況選擇排序方式,降序可使用reverse