JAVA取数两个数组交集,考虑重复和不重复元素
生活随笔
收集整理的這篇文章主要介紹了
JAVA取数两个数组交集,考虑重复和不重复元素
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.考慮不重復(fù)元素,重復(fù)元素不添加
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)//把不重復(fù)的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.重復(fù)元素添加
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); // 出現(xiàn)頻率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;} }
轉(zhuǎn)載于:https://www.cnblogs.com/sunliyuan/p/10702273.html
總結(jié)
以上是生活随笔為你收集整理的JAVA取数两个数组交集,考虑重复和不重复元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA如何像ecplise一样添加ja
- 下一篇: java基础-容器-Set