java 数组不重复_JAVA取数两个数组交集,考虑重复和不重复元素

这段代码展示了如何使用Java的TreeSet和ArrayList找到两个整数数组的交集。第一种方法保留了交集中不重复的元素,而第二种方法则保留了重复元素。通过TreeMap实现了计数功能,以便在交集中包含重复项。
摘要由CSDN通过智能技术生成

1.考虑不重复元素,重复元素不添加

import java.awt.List;

import java.util.ArrayList;

import java.util.TreeSet;

public class Solution {

public static int[] intersection(int[] nums1,int[] nums2){

TreeSet set =new TreeSet<>();

for(int num : nums1)//把不重复的nums1加入到集合中

set.add(num);

ArrayList list=new ArrayList<>();

for(int num:nums2){

if(set.contains(num)){

list.add(num);

set.remove(num);

}

}

int[] res=new int[list.size()]

for(int i=0;i

res[i]=list.get(i);

return res;

}

public static void main(String[] args) {

int[] nums1={1,2,2,1};

int[] nums2={2,2};

System.out.println("shuju"+intersection(nums1,nums2));

}

}

2.重复元素添加

import java.util.ArrayList;

import java.util.TreeMap;

public class Solution1 {

public static int[] intersect(int[] nums1, int[] nums2) {

TreeMap map = new TreeMap<>();

for (int num : nums1) {

if (!map.containsKey(num)) // 不包含

map.put(num, 1); // 出现频率

else

map.put(num, map.get(num) - 1);

}

ArrayList list = new ArrayList<>();

for (int num : nums2) {

if (map.containsKey(num)) {

list.add(num);

map.put(num, map.get(num) - 1);

if (map.get(num) == 0)

map.remove(num);

}

}

int[] res = new int[list.size()];

for (int i = 0; i < list.size(); i++)

res[i] = list.get(i);

return res;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值