本文目錄一覽:
java list如何去重
ListString list = new ArrayList();
/*list.add(“abc”);
list.add(“abc”);
list.add(“def”);
list.add(“bcd”);*/
SetString set = new LinkedHashSet();//這種方式保證去重後的元素相對位置不變
//SetString set = new HashSet();//這種方式去重後元素的位置很有可能變化了
set.addAll(list);
list.clear();
list.addAll(set);
for(String s : list){
System.out.println(s);
}
整個思路就是利用set中的元素是不重複的,來達到去重的目的
如何在List集合中去重
通過循環進行刪除
public static void removeDuplicate(List list) {
for ( int i = 0 ; i list.size() – 1 ; i ++ ) {
for ( int j = list.size() – 1 ; j i; j — ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
System.out.println(list);
}
通過HashSet刪除
public static void removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
}
3、刪除重複元素,並保持順序。(我沒試)
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println( ” remove duplicate ” + list);
}
4、定義一個方法,調用即可。
publi ListString getNewList(ListString li){
ListString list = new ArrayListString();
for(int i=0; ili.size(); i++){
String str = li.get(i); //獲取傳入集合對象的每一個元素
if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果沒有則加入
list.add(str);
}
}
return list; //返回集合
}
public class Test{
public static void main(String[] args){
ArrayListString arr = new ArrayListString();
arr.add(“aaa”);
arr.add(“bbb”);
arr.add(“aaa”);
arr.add(“ccc”);
arr = getNewList(arr); //方法去重
System.out.println(arr);
}
}
package com.test;
import java.util.*;public class Test { /**
AAAA AAAA BBBB BBBB CCCC CCCC CCCC CCCC */
public static void main(String[] args) {
ListString list = new ArrayListString();
list.add(“AAAA”);
list.add(“AAAA”);
list.add(“AAAA”);
list.add(“BBBB”);
list.add(“BBBB”);
list.add(“BBBB”);
list.add(“CCCC”);
list.add(“CCCC”);
list.add(“CCCC”);
list.add(“DDDD”); new Test().removeDuplicateWithOrder(list);// System.out.println(list); } // 刪除ArrayList中重複元素
public static void removeDuplicate(List list) { for (int i = 0; i list.size() – 1; i++) { for (int j = list.size() – 1; j i; j–) { if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
System.out.println(list);
} // 方法二:通過HashSet剔除 // 刪除ArrayList中重複元素,add進去順序就變了不考慮順序的話可以使用
public static void removeDuplicate1(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
} // 方法三: 刪除ArrayList中重複元素,保持順序 // 刪除ArrayList中重複元素,保持順序
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet();
List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next(); if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println(” remove duplicate ” + list);
}
}
Java中如何去除List中的重複的值
通過HashSet剔除
// 刪除ArrayList中重複元素,add進去順序就變了不考慮順序的話可以使用
public static void removeDuplicate1(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
}
java對List去重並排序,如何快速地去掉兩個
Java8開始,對數值,集合等提供了Stream流操作,可以方便的對集合進行操作.
比如 篩選,過濾,去重, 映射, 排序,規約,收集 等操作
簡單的參考代碼如下
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
// 使用Java8 的Stream特性 和 Java8的Lambda 語句
public class Demo {
public static void main(String[] args) {
// 需求: 集合去重,排序,得到一個新集合裡面的元素是之前元素的平方
ListInteger list=Arrays.asList(5,2,2,1,3,4);
ListInteger listResult = list
.stream() // 得到流
.distinct() // 去重 5,2,1,3,4
.sorted() // 自然排序 , 也可以自定義排序規則1,2,3,4,5
.map(x-x*x) // 每個元素求平方1,4,9,16,25
.collect(Collectors.toList()); //收集並返回
System.out.println(listResult);//1,4,9,16,25
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237525.html