找出一个数组中,第一个不重复的数字

找出一个数组中,第一个不重复的数字

今天看到一道面试题,这段时间正好在复习JAVA基础,就拿来练手。
我想到两种方法:

  1. 利用两个for循环嵌套判断:
    遍历数组,在第二个循环中判断每个数组出现的次数,如果只有一次,则在第一个循环中输出该元素。
package com.cn.shencan;

public class TextFive {
    public static void main(String[] args) {
       int a[] = new int[]{9,8,7,6,5,4,3,2,1,1,2,3,4,5,7,8,9,11};
       int index = 0;
       for (int i = 0; i <a.length ; i++) {
           for(int j = 0 ; j < a.length ; j++){
               if (a[i] == a[j]){
                index++;
                }
           }
           if (index == 1){
               System.out.println(a[i]);
               break;
           }else {
               index = 0;
           }
        }

    }
}

  1. 通过把数组存入Map集合中,数组元素作为key,出现次数作为value。然后通过遍历Map集合,把第一个value为0的key输出来,并跳出循环。
import java.util.LinkedHashMap;
import java.util.Map;

public class TextFive {
    public static void main(String[] args) {
        int a[] = new int[]{9,8,7,6,5,4,3,2,1,1,2,3,4,5,7,8,9,11};
        Map<Integer ,Integer> map = new LinkedHashMap<>();
        for (int i=0;i<a.length;i++){
            if (map.containsKey(a[i])) {      //判断是否有重复的key,也就是判断是否有重复元素
                int volues = map.get(a[i]);      //得到value,也就是次数
                map.put(a[i],volues+1 );    //  次数+1,重新存入
            }else {
                map.put(a[i],0);                  //如为发现有重复元素,则次数为0;  
            }
        }
        
        /*
        *   遍历Map集合
        */
        for (int i=0;i<a.length;i++){
            int value = map.get(a[i]);            //得到每个数组元素中的value
            if (value==0){                       判断value是否为0
                System.out.println(a[i]);       
                break;
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值