`
Before_Morning
  • 浏览: 36870 次
文章分类
社区版块
存档分类
最新评论

java两个ArrayList合并,并且去掉重复数据的算法

 
阅读更多
package com.lxl.test;


import java.util.ArrayList;
import java.util.List;


/**
* 两个ArrayList合并,并且去掉重复数据的算法
* 思路:
* ①取出两个list中公共的元素
* ②分别从两个list中把公共的元素去掉
* ③将去掉公共元素的两个list合并就去掉了重复的数据
*/
public class Test {
public static void main(String[] args) {
List list1 = new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(5);
list1.add(6);
List list2 = new ArrayList();
list2.add(4);
list2.add(5);
list2.add(6);
list2.add(7);
list2.add(8);
list2.add(9);
//temp用来保存两者共有的数据
List temp = new ArrayList(list1);
/**
* 目前temp中包含1.2.3.4.5.6
*/
System.out.println(temp);
//retainAll(Collection<?> c)
//仅在列表中保留指定 collection 中所包含的元素
//这里的意思是temp只保留list2中有的元素
temp.retainAll(list2);
/**
* 目前temp中仅有list1和list2中的公共元素4.5.6
*/
System.out.println(temp);
//从list1和list2中去掉两者共同有的数据
list1.removeAll(temp);
list2.removeAll(temp);


List list3 = new ArrayList();
list3.add(list1);
list3.add(list2);
System.out.println(list3);
}
}
分享到:
评论

相关推荐

    java 实现多个list 合并成一个去掉重复的案例

    在Java编程中,合并多个List并去除重复元素是一项常见的任务,尤其在处理数据集合时。在给定的案例中,我们看到两种不同的方法来完成这个任务。首先,让我们详细讲解这两种方法。 ### 1. 使用`addAll()`和`...

    java处理日期合并

    算法中使用了两个栈`s`和`e`分别存储合并后的起始时间和结束时间。遍历列表中的每个时间段时,根据当前时间段与栈顶元素的关系进行以下操作: - 如果当前时间段的开始时间大于栈顶的结束时间,则说明这两个时间段...

    区间并集求解算法java实现

    这个算法的实现使用了 Java 语言,主要包括两个类:UnionAlgorithm.java 和 Interval.java。UnionAlgorithm 类用 ArrayList 表示区间的集合,每一个元素表示一个区间,ArrayList 中元素顺序为这些元素表示的区间按照...

    华为秋招_多数组合并问题.doc

    它接收两个参数,一个是包含多个字符串的ArrayList(每个字符串代表一个数组),另一个是固定的取长度`num`。 - 在`Alg`方法内部,使用一个while循环来处理直到所有数组都被遍历完。 - for循环遍历ArrayList中的每...

    Java面试宝典-经典

    55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...

    java面试题大全(2012版)

    55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...

    最新Java面试宝典pdf版

    55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...

    海联讯科技Java面试题.doc

    - 题目要求编写一个方法,将两个字符串数组合并并去除重复元素。可以使用HashSet来实现,因为它自动去重。 ```java public String[] union(String[] array1, String[] array2) { Set&lt;String&gt; set = new HashSet...

    java面试宝典2012

    55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 40 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...

    Java面试宝典2012版

    55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 36 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序...

    Java数组操作的10大方法

    Java数组是程序设计中最基本的数据结构之一,它们用于存储固定数量的同类型元素。下面将详细解释Java数组操作的10大方法。...理解并熟练运用这些技巧是Java编程的基础,对于处理数据和优化算法至关重要。

    2021-2022计算机二级等级考试试题及答案No.3804.docx

    相比之下,选择(即筛选)和并(即合并两个表中的记录,去除重复)等操作通常更加高效。 ### 2. 排序算法的内存需求 - **知识点**: 不同排序算法对内存的需求不同。 - **详细解释**: 归并排序是一种分而治之的算法...

Global site tag (gtag.js) - Google Analytics