java 怎样把list中相同的数据找出来
5个回答
展开全部
依次处理list的元素list[i],用dup装去重元素,mul装重复元素。先检查dup是否包含元素list[i],如果包含则加入mul中。如果没有则加入dup中。最后mul中就是重复数据,dup中就是去掉重复元素的列表。下面是一个实例,首先生成一个列表list,然后找出重复元素。
public class Duplication
{
public static void main(String[] args)
{
List<Integer> list = new ArrayList<Integer>();
for(int i = 1;i <= 10;i++)
{
if(i%3 == 0) continue;
if(i%2 == 0)
{
list.add(i);
list.add(i);
}
else
list.add(i);
}
System.out.println(list);
List<Integer> dup = new ArrayList<Integer>();
List<Integer> mul = new ArrayList<Integer>();
for(int a:list)
{
if(dup.contains(a))
mul.add(a);
else dup.add(a);
}
System.out.println(dup);
System.out.println(mul);
}
}
展开全部
// 初始化list
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(21);
list.add(1);
list.add(3);
list.add(3);
list.add(3);
// set中存放的是不可重复的元素
HashSet<Integer> set = new HashSet<Integer>();
// 这里存放的是所有重复的元素,如果你只想知道是哪几个数字重复了,不需要知道具体重复了几次,可以用HashSet
List<Integer> repeatElements = new ArrayList<Integer>();
for (int i=0;i<list.size();i++) {
int value = list.get(i);
if (set.contains(value)) {
// 重复元素
repeatElements.add(value);
}
else {
set.add(value);
}
}
// 输出重复的元素
for (int i=0;i<repeatElements.size();i++) {
System.out.println(repeatElements.get(i));
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java8新特性Stream可以处理:
list.stream().filter(i -> list.stream().filter(i::equals).count()>1).collect(Collectors.toSet());
list.stream().filter(i -> list.stream().filter(i::equals).count()>1).collect(Collectors.toSet());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Set<String> chnCodes = new HashSet<>();
Set<String> dupCodes = new HashSet<>();
codes.stream().forEach(code-> {
if (chnCodes.contains(code)) {
dupCodes.add(chnCode);
} else {
chnCodes.add(code);
}
});
Set<String> dupCodes = new HashSet<>();
codes.stream().forEach(code-> {
if (chnCodes.contains(code)) {
dupCodes.add(chnCode);
} else {
chnCodes.add(code);
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面有一个筛选按钮,你上百度查查,筛选按钮在哪里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询