package rmd_pms_web;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
/**
* @Description: 两个list对比,查出增加,删除的数据然后去重
* @date 2017年8月17日
*/
public class Test {
public static void main(String[] args) {
List<Integer> arr = new ArrayList<Integer>();
List<Integer> a = Arrays.asList(1, 2, 3, 4,6);
List<Integer> b = Arrays.asList(4, 3, 2, 1,9);
//增加的元素组成的列表
List<Integer> aList= getAddaListThanbList(a, b);
for (Integer integer : aList) {
System.out.println("增加的元素:"+integer);
}
//减少的元素组成的列表
List<Integer> bList= getReduceaListThanbList(a, b);
for (Integer integer : bList) {
System.out.println("减少的元素:"+integer);
}
//封装
arr.addAll(a);
arr.addAll(b);
arr.addAll(aList);
arr.addAll(bList);
//去重
cleanDisRepet(arr);
for (Integer integer : arr) {
System.out.println("全部元素:"+integer);
}
}
/**
* @Description: 计算列表aList相对于bList的增加的情况,兼容任何类型元素的列表数据结构
* @param aList 本列表
* @param bList 对照列表
* @return 返回增加的元素组成的列表
*/
public static <E> List<E> getAddaListThanbList(List<E> aList, List<E> bList){
List<E> addList = new ArrayList<E>();
for (int i = 0; i < aList.size(); i++){
if(!myListContains(bList, aList.get(i))){
addList.add(aList.get(i));
}
}
return addList;
}
/**
* @Description: 计算列表aList相对于bList的减少的情况,兼容任何类型元素的列表数据结构
* @param aList 本列表
* @param bList 对照列表
* @return 返回减少的元素组成的列表
*/
public static <E> List<E> getReduceaListThanbList(List<E> aList, List<E> bList){
List<E> reduceaList = new ArrayList<E>();
for (int i = 0; i < bList.size(); i++){
if(!myListContains(aList, bList.get(i))){
reduceaList.add(bList.get(i));
}
}
return reduceaList;
}
/**
* @Description: 判断元素element是否是sourceList列表中的一个子元素
* @param sourceList 源列表
* @param element 待判断的包含元素
* @return 包含返回 true,不包含返回 false
*/
private static <E> boolean myListContains(List<E> sourceList, E element) {
if (sourceList == null || element == null){
return false;
}
if (sourceList.isEmpty()){
return false;
}
for (E tip : sourceList){
if(element.equals(tip)){
return true;
}
}
return false;
}
/**
* @Description: 去除list重复数据
* @param list
* @return list
*/
public static <E> List<E> cleanDisRepet(List<E> list){
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
return list;
}
}
分享到:
相关推荐
java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重
今天小编就为大家分享一篇关于Java List中数据的去重,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
主要介绍了关于java中List对象列表实现去重或取出以及排序的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
主要介绍了Java中对List去重, Stream去重的问题解答,文中给大家介绍了Java中List集合去除重复数据的方法,需要的朋友可以参考下
比较list得到不同的对象 慎重注意list的大小变化和索引 精简算法
两个集合比较(重新生成:新增集合、编辑集合、删除集合)
java计算同一个list中是否有相同的值
在java的list中由于经常存在重复的元素,需要去重,这个时候要用到list去重,将一些不必要展现出来的元素展现出来
java获取list中两元素时间差
主要介绍了Java中List集合对象去重及按属性去重的8种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一地的参考借鉴价值,需要的朋友可以参考下
实用方法,使用java8 stream对List 分组,去重,自定义排序
在日常的业务开发中,可能会遇到需要将 List 集合中的重复数据去除掉的场景。在实际的业务开发中遇到的情况会更复杂。比如,List 集合可能是历史遗留问题,也有可能是调用接口返回的类型限制,只能使用 List 接收;...
list的排序和去重等的方便操作,此文档为自己写代码的下载,会比较难懂,请大家耐心查看啊
主要介绍了Java实现对两个List快速去重并排序操作,结合实例形式较为详细的分析了Java针对list的遍历、去重、排序相关操作技巧与注意事项,需要的朋友可以参考下
java list集合和数组去除重复项,并记录重复次数个数。
关于Java中List对象的分页思想-按10个或者n个数对list进行分组
使用两个list,String>> 求交集和补集。
实现list不同泛型之间实体的互转,基于java8新特性+反射机制实现list不同实体类互转,将jdk8的流处理集合互转抽出来成一个工具类,实现lsit
主要介绍了Java比较两个List的值是否相等的方法,涉及java针对队列比较的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了Java8 Stream对两个 List 遍历匹配数据的优化处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧