1、A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
方法1:用java中的HashSet(也可以HashMap)哈希后遍历。
1 import java.util.HashMap; 2 import java.util.HashSet; 3 4 public class HashStudy { 5 6 /** 7 * @param args 8 */ 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11 12 final int N = 10; 13 HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); 14 HashSet<Integer> set = new HashSet<Integer>(); 15 int arr[] = new int[N]; 16 int arr2[] = new int[N]; 17 for (int i = 0; i < N; i++) { 18 arr[i] = i; 19 arr2[i] = i + 5; 20 set.add((Integer) i); 21 map.put((Integer) i, (Integer) i); 22 } 23 for (int i = 0; i < N; i++) { 24 if (map.containsValue(arr2[i])) { 25 System.out.println(arr2[i]); 26 } 27 } 28 for (int i = 0; i < N; i++) { 29 if (set.contains(arr2[i])) { 30 System.out.println(arr2[i]); 31 } 32 } 33 } 34 35 }
方法2:未完待续。