求两个数组的交集 ->可以使用HashMap做

求两个数组的交集

思路:

1,第一个数组的元素放入hashmap中,令值为1(不论是否重复).

2.  循环检验第二个数组的元素,判断hashmap中是否已经存在该值(m.getKey(a2[i])),存在则value更新为2.

3. 将hashmap值为2的元素的key放到list中(  if(e.getValue()==2)list.add(e.getKey());   ) ,变成数组(toArray()方法)后返回.

package com.yuxin.learn;

import java.security.KeyStore.Entry;
import java.util.*;

public class Main {
	
	public static Integer[] interset(int[] a1,int[] a2){
		int len1 = a1.length;
		int len2 = a2.length;
		int len = a1.length+a2.length;
		Map m = new HashMap(len);
		LinkedList ret = new LinkedList();
		for(int i=0;i e:m.entrySet()){
			if(e.getValue()==2){
				ret.add(e.getKey());
			}
		}
		Integer[] retArray={};
		return ret.toArray(retArray);
	}
	public static void main(String[] args) {
		int M=4;
		int N=6;
		ArrayList l1 = new ArrayList();
		ArrayList l2 = new ArrayList();
		Scanner scanner = new Scanner(System.in);
		/*System.out.println("输入两个数组l1,l2,输入-1结束");
		System.out.println("l1:");
		int get = 0;
		for(int i=0;i


你可能感兴趣的:(java,hashmap)