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对象列表实现去重或取出及排序的方法 ...去重和排序List对象列表可以使用多种方法,包括重写equals和hashCode方法,使用HashSet,使用Java 8的Stream API等。根据实际情况选择合适的方法来实现。
在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...
此方法用于将两个已经根据时间顺序排列的List合并成一个新的单一List,并进行排序。 2、该类设计有泛型,任何类型的集合List都可以调用该类。 3、使用者可以通过调用`ListMerger.mergeAndSortLists()`方法,传入两...
本文将深入探讨如何比较两个集合,并关注在Java中使用List进行对比时的“新增”、“编辑”和“删除”操作。首先,我们需要理解集合的基本概念。集合是存储一组元素的数据结构,而List是一种有序的集合,允许重复元素...
在Java编程中,经常需要对两个`List`进行比较,找出它们之间的差异。这通常涉及到数据结构的理解、算法设计以及编程实现等多个方面。本文将详细探讨如何通过一个示例代码来理解如何比较两个`List`并提取出不同的对象...
java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重
Java语言中,List类型的数据结构广泛应用于各个领域,但是在实际应用中,我们经常需要对List进行去重和排序操作以满足业务需求。因此,本文将详细介绍Java实现对两个List快速去重并排序操作的方法和技巧。 一、...
Java 获取 List 中两元素时间差 Java 中获取 List 中两元素时间差是指在 List 集合中计算每个元素之间的时间差异。下面是相关知识点的详细解释: List 数据结构 List 是一种常见的数据结构,在 Java 中有多种实现...
Java中List去重和Stream去重的解决方法 List去重是Java中的一种常见操作,对于List中的重复元素进行去重,从而使得List中的元素变得独一无二。 Java中提供了多种方法来实现List去重,下面我们将对其中的一些方法...
在 Java 编程中,判断一个 `List` 中是否存在重复元素是一项常见的需求。特别是在数据处理、验证或分析等场景中,确保数据的唯一性对于维持数据完整性至关重要。 #### 核心概念解析 在给定的代码片段中,作者提供...
Java List中数据的去重是Java编程中一个常见的问题。今天,我们将讨论如何在Java List中去除重复的元素。去重是指从集合中删除重复的元素,以便使集合中的元素唯一。 在Java中,我们可以使用Set集合来去重。Set集合...
在本文中,我们将通过一个示例代码来演示如何使用Java语言来合并两个LIST。首先,我们定义了两个LIST,lst1和lst2,每个LIST中都包含一些UserBean对象。然后,我们使用addAll()方法将lst2合并到lst1中。 在合并过程...
【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...
在java的list中由于经常存在重复的元素,需要去重,这个时候要用到list去重,将一些不必要展现出来的元素展现出来
Java中List对象的分页思想是一种常用的数据处理技术,通过将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素,例如10个或n个。这种技术可以用于解决大规模数据的处理问题,例如批量...
### Java数组去重与List集合去重的常用方法总结 #### 一、Java数组去重方法 在实际的开发工作中,经常会遇到需要处理数组中重复元素的问题。下面将详细介绍两种常用的数组去重方法。 ##### 方法一:For双循环法 ...
Java中List根据map的某个key去重的代码 ...这篇文章分享了如何使用Java语言来实现List根据map的某个key去重的代码,展示了如何使用Java语言来处理和分析数据,并提供了一个示例代码来演示如何实现这个功能。
在这个通用工具类中,我们可能使用了HSSFWorkbook和SXSSFWorkbook这两个类,前者用于处理较小的文件,后者则适用于大数据量,因为它支持内存外写入,可以防止因内存不足导致的问题。 以下是该工具类可能包含的一些...
在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...
比较两个集合是否相同...利用Java反射机制,获取到字段名、方法名、字段值,进行逐个比较,此处本人封装好了工具类,接收的是泛型,调用者只需要传入两个实体List即可进行比较,返回true则为相同,返回false则不相同。