當前位置:首頁 » 編程語言 » java集合去重

java集合去重

發布時間: 2022-07-24 22:17:03

java 怎麼把多個list 合並成一個去掉重復的

示例代碼:


publicstaticvoidmain(String[]args){
List<Integer>list1=newArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer>list2=newArrayList<Integer>();
list2.add(1);
list2.add(4);
list2.add(7);
list2.add(10);
List<Integer>listAll=newArrayList<Integer>();
listAll.addAll(list1);
listAll.addAll(list2);
listAll=newArrayList<Integer>(newLinkedHashSet<>(listAll));
System.out.println(listAll);
}


輸出:


[1, 2, 3, 4, 7, 10]


代碼要典:


  1. 合並 使用java.util.List.addAll(Collection<? extends Integer>)

  2. 去重,藉助LinkedHashSet

② java中去除集合重復元素問題

你把o.equals(list)那句換成list.contains(o)試試。現在你的代碼里o是個Object(其實是String),list是個List,根本不可能equal的


哦下面那個li.remove(o)也換成list.remove(o)

________________________________

哦不對。。。你下面的iterator循環裡面其實把每一個都刪掉了。。。


------------------------------------

我加了一些我的改動代碼,不過如另一個人所說,一般我們都是在添加的時候去重的,你這種方式我也第一次遇到,不過就你給出來的這些條件,我覺得這樣改就可以了。

③ 集合元素去重用java類庫中的什麼類

去掉集合的重復元素,我們一般是這么做的:建立一個新的集合,把沒有出現過的元素添加進去。你這種方法我以前也用過,同樣沒成功。不過Map是可以這么做的。

package list;

import java.util.*;

public class Remove_form_list {
public static void method4() {
List list = new ArrayList();
list.add("123");
list.add("456");
list.add("258");
list.add("789");
list.add("147");
list.add("258");
list.add("123");
list.add("123");

List temp = new ArrayList();

Iterator it = list.listIterator();

while(it.hasNext()){
Object o = it.next();
if(!temp.contains(o)){ //如果temp還沒有這個元素,就添加
temp.add(o);
}
}

list = temp;
System.out.println(list.toString());

}

public static void main(String[] args) {
method4();
}
}

結果:
[123, 456, 258, 789, 147]

④ java對List去重並排序,如何快速地去掉兩個

Java8開始,對數值,集合等提供了Stream流操作,可以方便的對集合進行操作.

比如 篩選,過濾,去重, 映射, 排序,規約,收集 等操作

簡單的參考代碼如下


importjava.util.Arrays;
importjava.util.List;
importjava.util.stream.Collectors;
//使用Java8的Stream特性和Java8的Lambda語句
publicclassDemo{
publicstaticvoidmain(String[]args){
//需求:集合去重,排序,得到一個新集合裡面的元素是之前元素的平方
List<Integer>list=Arrays.asList(5,2,2,1,3,4);
List<Integer>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
}
}

⑤ java中怎樣去除list中重復的數據,並且顯示重復數據的條數

很多集合處理,我都推薦用Java8的流來處理,是非常簡單易懂的

其實你這個問題,總來說就是按照集合中的字元串進行分類,並統計數量,Stream只用簡單的代碼就完成復雜的操作,代碼如下

List<String>list=Arrays.asList("day","walipo","day","walipo","legeand","day","douwbo","day","day");
Map<String,Long>collect=list.stream().collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));
System.out.println(collect);


最後返回的Map就是以字元串為key,value為其個數

⑥ Java中如何去除List中的重復的值

//set集合去重,不打亂順序
publicstaticvoidmain(String[]args){
List<String>list=newArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("aba");
list.add("aaa");

Setset=newHashSet();
ListnewList=newArrayList();
for(Stringcd:list){
if(set.add(cd)){
newList.add(cd);
}
}
System.out.println("去重後的集合:"+newList);
}

⑦ java list<object>如何去重

		List<String>list=newArrayList<>();
/*list.add("abc");
list.add("abc");
list.add("def");
list.add("bcd");*/
Set<String>set=newLinkedHashSet<>();//這種方式保證去重後的元素相對位置不變
//Set<String>set=newHashSet<>();//這種方式去重後元素的位置很有可能變化了
set.addAll(list);
list.clear();
list.addAll(set);
for(Strings:list){
System.out.println(s);
}

整個思路就是利用set中的元素是不重復的,來達到去重的目的

⑧ java List<Object[]> 如何數據去重

list應該是有函數判斷某個key是否存在,可以看下文檔
list.contains(obj);

熱點內容
linux多核編程 發布:2025-03-04 13:22:58 瀏覽:141
cad配置低可以安裝什麼版本 發布:2025-03-04 12:59:36 瀏覽:977
寶可夢日月什麼配置能玩 發布:2025-03-04 12:46:18 瀏覽:919
oraclesql動態 發布:2025-03-04 12:44:19 瀏覽:233
MPLAB能否編譯pic32 發布:2025-03-04 12:42:50 瀏覽:290
如何分辨一輛車是什麼配置 發布:2025-03-04 12:41:10 瀏覽:350
配置很低的電腦玩csgo怎麼調 發布:2025-03-04 12:40:29 瀏覽:26
視頻解析網站源碼 發布:2025-03-04 12:40:25 瀏覽:319
哪個軟體可以直接重啟安卓手機 發布:2025-03-04 12:22:42 瀏覽:610
c語言scanf的意思 發布:2025-03-04 12:08:31 瀏覽:469