1. 程式人生 > 其它 >Leetcode349-HashSet常用方法以及遍歷方式

Leetcode349-HashSet常用方法以及遍歷方式

HashSet常用方法以及遍歷方式

常用方法

  • set.contains()
  • set.add()
  • Iterator iterator =set.iterator();

​ 遍歷方式

  • 增強for迴圈
  • iterator.hasNext()/iterator.next()

Leetcode349

  • 給定兩個陣列 nums1nums2 ,返回 它們的交集 。輸出結果中的每個元素一定是 唯一 的。我們可以 不考慮輸出結果的順序
  • 輸入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
  • 輸出:[9,4]
public class L349 {
    public static int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set1 = new HashSet<>();
        Set<Integer> reset = new HashSet<>();

        for (int i = 0; i < nums1.length; i++) {
            set1.add(nums1[i]);
        }

        for (int j = 0; j < nums2.length; j++) {
            if (set1.contains(nums2[j])) {
                reset.add(nums2[j]);
            }
        }

        int[] result = new int[reset.size()];
        //遍歷方式一
//        Iterator iterator=reset.iterator();
//        for(int i=0;i<result.length;i++){
//            result[i]=(Integer)iterator.next();
//        }

        //方式一變形
//        int k = 0;
//        Iterator iterator=reset.iterator();
//        while(iterator.hasNext()){
//            result[k++]=(Integer)iterator.next();
//        }

        //遍歷方式二 增強for迴圈
        int index = 0;
        for (Integer s : reset) {
            result[index] = s;
            index++;
        }

        return result;
    }

    public static void main(String[] args) {
        int[] int1 = {1, 2, 2, 3};
        int[] int2 = {2, 2, 2, 4};
        int[] intersection = intersection(int1, int2);
        System.out.println(Arrays.toString(intersection));
    }
}