当前位置:首页 » 编程语言 » 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);

热点内容
openwrt编译需要网络吗 发布:2025-01-28 03:49:16 浏览:683
网易云上传歌词手机 发布:2025-01-28 03:42:51 浏览:61
m3u8缓存文件 发布:2025-01-28 03:42:51 浏览:547
编程算损耗 发布:2025-01-28 03:33:03 浏览:456
sql存储过程返回多个结果 发布:2025-01-28 03:24:03 浏览:463
长安欧尚科赛哪个配置值得购买 发布:2025-01-28 03:19:35 浏览:116
c全排列算法 发布:2025-01-28 03:18:16 浏览:754
梵蒂冈顶级时装ftp 发布:2025-01-28 03:03:36 浏览:695
手游脚本有前途吗 发布:2025-01-28 02:46:55 浏览:379
抓包编程 发布:2025-01-28 02:42:41 浏览:930