Map函数找数字第一次出现的下标

方法1:数组遍历法(不推荐)
package com.day05.demo1;
import java.util.Arrays;
public class TestDemo {
     
	public static void main(String[] args) {
     
	int[] arry= {
     1,3,1,3,1};	
	int[] result=new int[arry.length];
	result[0]=-1;
	for(int i=1;i<arry.length;i++) {
     
		for(int j=0;j<i;j++) {
     
			if(arry[j]==arry[i]) {
     
				result[i]=j;
				break;
			}
			result[i]=-1;
		}
	}
	System.out.println(Arrays.toString(result));
	}
}
方法2.Map接口法
package com.day05.demo2;
import java.util.Arrays;
import java.util.HashMap;
public class TestDemo {
     
	//HashMap;
	public static void main(String[] args) {
     
	HashMap<Integer,Integer> hashMap
	=new HashMap<Integer,Integer>();		
	int []arry= {
     1,3,1,2,1};
	int[]result=new int[arry.length];
	for(int i=0;i<arry.length;i++) {
     
		if(!hashMap.containsKey(arry[i])) {
     
			result[i]=-1;
			hashMap.put(arry[i], i);
		}
		else {
     
			result[i]=hashMap.get(arry[i]);
		}
	}
	System.out.println(Arrays.toString(result));
}
}

你可能感兴趣的:(Map函数找数字第一次出现的下标)