`

java中两个list对比,查出增加和删除的数据然后去重

 
阅读更多
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对象列表实现去重或取出及排序的方法 ...去重和排序List对象列表可以使用多种方法,包括重写equals和hashCode方法,使用HashSet,使用Java 8的Stream API等。根据实际情况选择合适的方法来实现。

    java jsonarray 踢重 去重操作

    在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...

    两个集合比较(新增、编辑、删除)

    本文将深入探讨如何比较两个集合,并关注在Java中使用List进行对比时的“新增”、“编辑”和“删除”操作。首先,我们需要理解集合的基本概念。集合是存储一组元素的数据结构,而List是一种有序的集合,允许重复元素...

    两个list比较 取不同的对象

    在Java编程中,经常需要对两个`List`进行比较,找出它们之间的差异。这通常涉及到数据结构的理解、算法设计以及编程实现等多个方面。本文将详细探讨如何通过一个示例代码来理解如何比较两个`List`并提取出不同的对象...

    java list根据对象的某个属性的值去重

    java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重

    Java实现对两个List快速去重并排序操作示例

    Java语言中,List类型的数据结构广泛应用于各个领域,但是在实际应用中,我们经常需要对List进行去重和排序操作以满足业务需求。因此,本文将详细介绍Java实现对两个List快速去重并排序操作的方法和技巧。 一、...

    Java将2个List集合合并到一个List里面并排序工具类

    此方法用于将两个已经根据时间顺序排列的List合并成一个新的单一List,并进行排序。 2、该类设计有泛型,任何类型的集合List都可以调用该类。 3、使用者可以通过调用`ListMerger.mergeAndSortLists()`方法,传入两...

    java获取list中两元素时间差

    Java 获取 List 中两元素时间差 Java 中获取 List 中两元素时间差是指在 List 集合中计算每个元素之间的时间差异。下面是相关知识点的详细解释: List 数据结构 List 是一种常见的数据结构,在 Java 中有多种实现...

    Java中对List去重 Stream去重的解决方法

    Java中List去重和Stream去重的解决方法 List去重是Java中的一种常见操作,对于List中的重复元素进行去重,从而使得List中的元素变得独一无二。 Java中提供了多种方法来实现List去重,下面我们将对其中的一些方法...

    java计算同一个list中是否有相同的值

    在 Java 编程中,判断一个 `List` 中是否存在重复元素是一项常见的需求。特别是在数据处理、验证或分析等场景中,确保数据的唯一性对于维持数据完整性至关重要。 #### 核心概念解析 在给定的代码片段中,作者提供...

    Java List中数据的去重

    Java List中数据的去重是Java编程中一个常见的问题。今天,我们将讨论如何在Java List中去除重复的元素。去重是指从集合中删除重复的元素,以便使集合中的元素唯一。 在Java中,我们可以使用Set集合来去重。Set集合...

    java合并LIST

    在本文中,我们将通过一个示例代码来演示如何使用Java语言来合并两个LIST。首先,我们定义了两个LIST,lst1和lst2,每个LIST中都包含一些UserBean对象。然后,我们使用addAll()方法将lst2合并到lst1中。 在合并过程...

    Java中List集合对象去重及按属性去重的8种方法

    【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...

    list去重.txt

    在java的list中由于经常存在重复的元素,需要去重,这个时候要用到list去重,将一些不必要展现出来的元素展现出来

    关于Java中List对象的分页思想-按10个或者n个数对list进行分组

    Java中List对象的分页思想是一种常用的数据处理技术,通过将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素,例如10个或n个。这种技术可以用于解决大规模数据的处理问题,例如批量...

    Java数组去重 集合List去重的常用方法总结

    ### Java数组去重与List集合去重的常用方法总结 #### 一、Java数组去重方法 在实际的开发工作中,经常会遇到需要处理数组中重复元素的问题。下面将详细介绍两种常用的数组去重方法。 ##### 方法一:For双循环法 ...

    java中,list集合数据导出到excel表格通用工具类

    在这个通用工具类中,我们可能使用了HSSFWorkbook和SXSSFWorkbook这两个类,前者用于处理较小的文件,后者则适用于大数据量,因为它支持内存外写入,可以防止因内存不足导致的问题。 以下是该工具类可能包含的一些...

    List集合多个复杂字段判断去重的案例

    对 List 集合中的复杂对象进行去重操作需要我们重写 equals 方法,以便让 Java 知道如何判断两个对象是否相等。同时,我们也可以使用 contains 方法来检查对象是否已经存在于集合中,以便避免重复对象的出现。

    如何实现java8 list按照元素的某个字段去重

    在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...

    Java中List根据map的某个key去重的代码

    Java中List根据map的某个key去重的代码 ...这篇文章分享了如何使用Java语言来实现List根据map的某个key去重的代码,展示了如何使用Java语言来处理和分析数据,并提供了一个示例代码来演示如何实现这个功能。

Global site tag (gtag.js) - Google Analytics