java集合去重
① 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]
代码要典:
合并 使用java.util.List.addAll(Collection<? extends Integer>)
去重,借助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);