listjava去重复
㈠ 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 项目 , List<实体>,需要获取list中的重复数据
java项目中获取list重复数据可以使用list的replicateIndex方法,实例如下:
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<String>();
list.add("123");
list.add("456");
list.add("555");
list.add("123");
list.add("444");
list.add("123");
// 输出原 List 的内容
for (int i = 0; i < list.size(); i++) {
System.out.printf("%2d --> %s%n", i, list.get(i));
}
System.out.println("=============");
// 输出查找重复元素的内容
int[] indexArray = replicateIndex(list, "123");
for (int index : indexArray) {
System.out.printf("%2d --> %s%n", index, list.get(index));
}
}
public static <T> int[] replicateIndex(List<T> list, T str) throws Exception{
List<T> tmp = new ArrayList<T>(list);
int[] index = new int[Collections.frequency(list, str)];
int start = tmp.indexOf(str);
int end = tmp.lastIndexOf(str);
int i = 0;
if(start < 0) {
throw new Exception("数组中不存在 " + str + " 元素!");
}
index[i] = start;
while (start != end) {
index[++i] = end;
tmp = tmp.subList(0, end);
end = tmp.lastIndexOf(str);
}
Arrays.sort(index);
return index;
}
㈢ 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的特性,将所有项目放入Set
//中即可移除重复的项目
Set<String>stringSet=newHashSet<String>();
for(Stringelement:plicateArray){
stringSet.add(element);
}
//Set.size()为不重复项目的个数
StringnonDuplicateArray[]=newString[stringSet.size()];
//将Set中的项目取出放到nonDuplicateArray中
Object[]tempArray=stringSet.toArray();
for(inti=0;i<tempArray.length;i++){
nonDuplicateArray[i]=(String)tempArray[i];
}