JAVA取数两个数组交集,考虑重复和不重复元素
生活随笔
收集整理的这篇文章主要介绍了
JAVA取数两个数组交集,考虑重复和不重复元素
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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<Integer> set =new TreeSet<>();for(int num : nums1)//把不重复的nums1加入到集合中set.add(num);ArrayList<Integer> 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<list.size();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<Integer, Integer> map = new TreeMap<>();for (int num : nums1) {if (!map.containsKey(num)) // 不包含map.put(num, 1); // 出现频率elsemap.put(num, map.get(num) - 1);}ArrayList<Integer> 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;} }
转载于:https://www.cnblogs.com/sunliyuan/p/10702273.html
总结
以上是生活随笔为你收集整理的JAVA取数两个数组交集,考虑重复和不重复元素的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: IDEA如何像ecplise一样添加ja
- 下一篇: java基础-容器-Set