`
夏文权
  • 浏览: 243030 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

java 实现数组的交集和并集

 
阅读更多
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;


public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<Integer> list1 = new ArrayList<Integer>();
		for(int i = 0 ; i < 5; i ++){
			list1.add(i);
		}
		list1.add(4);

		ArrayList<Integer> list2 = new ArrayList<Integer>();
		for(int i = 0 ; i < 10; i ++){
			list2.add(i);
		}
		
		
		deleteRepeatData(list1);
		deleteRepeatData(list2);
		
		intersect(list1, list2);
		Integer integer[] = union(list1, list2);
		for(int i = 0 ; i < integer.length ; i ++){
			System.out.println("union(list1, list2);== "+ integer[i]);
		}
		
		
	}

	/**
	 * 数组的交集
	 * @param list1
	 * @param list2
	 */
	private static void intersect(ArrayList<Integer> list1,
			ArrayList<Integer> list2) {
		int size1 = list1.size();
		int size2 = list2.size();
		
		if(size1 > size2){
			for(int i = 0 ; i < size1 ; i ++){
				for(int k = 0 ; k < size2 ; k ++){
					if(list1.get(i) == list2.get(k)){
						System.out.println("list1.get("+ i + ") == " + list1.get(i));
					}
				}
			}
			
		}else{
			for(int i = 0 ; i < size2 ; i ++){
				for(int k = 0 ; k < size1 ; k ++){
					if(list2.get(i) == list1.get(k)){
						System.out.println("list2.get("+ i + ") == " + list2.get(i));
					}
				}
			}
		}
	}

	/**
	 *去掉数组中重复的数据 
	 * @param numList
	 */
	private static void deleteRepeatData(ArrayList<Integer> numList) {

		Iterator<Integer> iterator = numList.iterator();
		int temp = -1;
		if(iterator.hasNext()){
			temp = iterator.next();
		}
		
		while(iterator.hasNext()){
			int i = iterator.next();
			if(i == temp ){
				iterator.remove();
			}else{
				temp = i;
			}
		}
		System.out.println(numList);
		
	}
	
	/**
	 * 数组的并集
	 * 求两个字符串数组的并集,利用set的元素唯一性
	 * @param arrayList1
	 * @param arrayList2
	 * @return
	 */
	public static Integer[] union(ArrayList<Integer> arrayList1,ArrayList<Integer> arrayList2){
		
		Set<Integer> set = new HashSet<Integer>();
		for(Integer in : arrayList1){
			set.add(in);
		}
		
		for(Integer in : arrayList2){
			set.add(in);
		}
		Integer[] integers = new Integer[]{};
		set.toArray(integers);
		return set.toArray(integers);
		
	}
	
	
}
 
分享到:
评论

相关推荐

    java 求数组并集交集补集

    利用java 语言,实现数组的并集交集补集,数组可键入。

    java数组求交集,并集,差集

    求java数组的交集,并集,差集 实现方法简单但很实用

    实现多个集合的交集,并集

    下面将详细介绍如何在Java中实现多个数组的交集和并集。 首先,让我们从交集开始。假设我们有多个数组,例如`array1`, `array2`, `array3`等,我们想要找出它们共有的元素。一个简单的实现方式是先将这些数组合并为...

    java jsonarray 踢重 去重操作

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

    模糊匹配算法java实现

    在Java中,可以通过遍历两个集合并计算交集和并集来实现。 3. **余弦相似度**:在多维空间中衡量两个向量之间的角度,适用于高维数据。可以先将字符串转化为词频向量,然后使用Java的`java.util.Math.cos()`计算两...

    Leecode初级算法_数组篇_实例

    例如,你可能会遇到查找数组中的最大值、最小值、特定元素,或者是两个数组的交集、并集等。这些题目对于理解数组的基本特性和操作非常有帮助,同时也训练了程序员的逻辑思维能力。 在Java中,处理数组时可以使用...

    java课程设计报告收集.pdf

    问题描述是实现两个集合(A和B)的交集、并集和差集运算,并输出结果。集合元素可以是字母、整数或字符串,它们的大小和长度由数组表示。设计中需要定义数组存储集合元素,构造方法处理运算,并输出运算结果。算法...

    取两个集合的交集

    通过分析给定的示例代码,我们了解到一种计算字符串数组交集的具体实现方法。在实际开发中,根据具体的业务需求选择合适的算法是非常重要的。希望本文能够帮助读者更好地理解和掌握集合的相关知识。

    数据结构课程设计之集合运算

    在这个设计中,我们将探讨如何利用各种数据结构实现集合的基本操作,如并集、交集、差集等。 首先,我们要理解集合的基本概念。集合是由一组具有某种特定属性的对象组成的整体,这些对象称为集合的元素。在计算机...

    义一个整数集合类integerSet。这种类型的对象可以存储10个20~80之间的整数,即他的内部有一个整型数组存储数据。编程:

    2. 创建`integerSet`对象`d`,并调用`bool`、`jiao`、`bing`和`delete`方法,实现集合的比较、交集、并集以及删除操作。 通过以上分析可以看出,`integerSet`类实现了基本的集合操作,包括比较、交集、并集及删除等...

    Coding:解决编码问题

    用于两个已排序数组的交集和并集的程序。 IntersectionUnion.java 数组 程序查找两个二进制数组中最长的跨度和。 LongestSpan.java 链表 链接列表创建代码。 LinkedListCreation.java 链表 链接列表插入代码。...

    java集合的运算.pdf

    具体来说,需要输出两个集合的交集、并集和差集。 二、集合运算的设计 集合运算是常用的数学计算,为了更加方便地进行此类运算,在此设计了一个简单的集合运算Java程序。该程序使用数组代表集合,主要使用循环语句...

    Java实验九:解决问题讲解(排序,数组,添加,删除的应用)

    在本Java实验中,主要涉及了...这个实验旨在让学生掌握基本的数组操作,排序算法的实现,以及如何处理数据集合(如交集和并集)。通过这个实验,学生能进一步理解面向对象编程的概念,增强对Java语言的实际应用能力。

    java代码-TwoArray

    5. **数组排序**:Java内置的Arrays.sort()方法可以对数组进行排序,适用于基本类型和实现了Comparable接口的对象。 6. **数组的交集和并集**:找出两个数组的交集和并集通常需要遍历数组并使用集合(如HashSet)来...

    java中关于集合的操作

    - **并集、交集、差集**:`union()`, `intersection()`, `difference()`分别对应集合的并、交、差操作。 6. **泛型**: 泛型允许在集合中声明和使用特定类型的元素,提高代码安全性和可读性。 7. **并发集合**:...

    java-469198.pdf

    在Java中,我们通常使用ArrayList来表示线性表,因为它提供了动态数组的功能,可以方便地进行添加、删除和查找操作。 首先,我们需要理解线性表的基本操作,包括插入元素、删除元素和查找元素。在这个例子中,我们...

    实验一集合交并差.zip

    在本实验中,我们将深入探讨数据结构中的集合操作,包括集合的交集、并集和差集。这些基本概念是计算机科学,特别是算法和数据结构领域的重要组成部分。实验标题为"实验一集合交并差.zip",暗示我们将通过实际操作来...

    宜信公司java程序员笔试题面试题.pdf,这是一份不错的文件

    - 第二题涉及集合和计数,需要理解集合论的基本概念,例如交集、并集和子集。 2. **JAVA基础**: - 面向对象的三大特性:封装、继承、多态。这些都是Java编程的基础,用于构建可维护和可扩展的代码结构。 - ...

Global site tag (gtag.js) - Google Analytics