Java求两个List的交集

 1 package demo;
 2
 3 import java.util.List;
 4
 5 public class Demo {
 6
 7     @SuppressWarnings("unchecked")
 8     public static void main(String[] args) {
 9         List array1=new ArrayList();
10         array1.add("1");array1.add("2");
11         List array2=new ArrayList();
12         array2.add("1");array2.add("6297");
13
14         //求四个数组的交集  最终结果应该是4,7
15         intersect(array1, array2);
16     }
17
18     //求两个List的交集
19     @SuppressWarnings("unchecked")
20     public static List intersect(List<Object> arr1, List<Object> arr2) {
21         List result = new ArrayList();
22         for (Object arr : arr2) {//遍历list1
23             if (arr1.contains(arr)) {//如果存在这个数
24                 result.add(arr);//放进一个list里面,这个list就是交集
25                 System.out.println(arr+",");
26             }
27         }
28         return result;
29     }
30
31
32 }
时间: 2024-10-14 23:33:52

Java求两个List的交集的相关文章

求两个数组的交集

问题: 给你两个排序的数组,求两个数组的交集. 比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么交集就是 3 5. 思路: 1. 每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存.该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度. 2. 因为A B 都排过序,所以,每一次从B数组取值后,可以利用二分查找看是否在数组A里有B所对应的值,这样复杂度变成了O(N lg M). 这里,如果N 比 M 大,可以从A中取值,然后在B中判断是否有A

用Java求字符串数组的的交集和并集

package com.array; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class StringArray { pu

哈希(4) - 求两个链表的交集(intersection)以及并集(union)

给定两个链表,求它们的交集以及并集.用于输出的list中的元素顺序可不予考虑. 例子: 输入下面两个链表: list1: 10->15->4->20 list2: 8->4->2->10 输出链表: 交集list: 4->10 并集list: 2->8->20->4->15->10 方法1 (简单方法) 可以参考链表系列中的"链表操作 - 求两个链表的交集(intersection)以及并集(union)" 方法2

java求两个集合的差集

public static void main(String[] args) {Set set = new HashSet();Set set1 = new HashSet();set.add("sanny");set.add("mary");set.add("bill");set.add("tom");set.add("tony");set.add("mark");set.add(&q

求两个集合的交集和并集C#

我是用hashset<T>来实现的 具体如代码所示 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JiaoJi { class Program { static void Main(string[] args) { int [] arrA=new int[8]{1,2,3,4,5,6,7,8}; int [] arrB=new int[5]{4,5,

【Java】两个集合取交集

public static void main(String[] args) {     Set<String> set1 = new HashSet<String>();       Set<String> set2 = new HashSet<String>();       set1.add("abc");  set2.add("abc");       set1.add("123");  s

leetcode-350-Intersection of Two Arrays II(求两个数组的交集)

题目描述: Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. Note: Each element in the result should appear as many times as it shows in both arrays. The result can be in a

Java里面如何求两个集合的交集

在Python里,或许我们没有这个烦恼,因为python里已经为我们提供了intersection这样的方法. 但是在Java里,就需要我们动一番脑筋了.这里浓重推荐下apache的CollectionUtils工具类. 方法签名如下所示: org.apache.commons.collections.intersection(final Collection a, final Collection b) 那么这个方法是怎么实现的呢?这里以list为例 public class TestInte

java使用bitmap求两个数组的交集

先实现一个bitmap /** * @Description: * @author: zhoum * @Date: 2020-01-23 * @Time: 10:49 */ public class BitMap { private int[] sign = {0x00000001,0x00000002,0x00000004,0x00000008,0x00000010,0x00000020,0x00000040,0x00000080,0x00000100,0x00000200,0x0000040