首页 > 编程语言 > 详细

逻辑题(一)一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。

时间:2019-11-30 13:14:10      阅读:69      评论:0      收藏:0      [点我收藏+]
package test;
import java.util.*;

public class test17 {
    public static void main(String[] args) {
        //一个整型数组里除了两个数字之外,其他的数字都出现了两次。
        // 请写程序找出这两个只出现一次的数字。
        int[] ints = {1,1,2,5,5,6,3,3};
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        for (int i=0;i<ints.length;i++){
            if (map.containsKey(ints[i])){
                int i1 = map.get(ints[i]) + 1;
                map.put(ints[i],i1);
            }else {
                map.put(ints[i],1);
            }
        }
        ArrayList list = new ArrayList();
        for (int i=0;i<ints.length;i++){
            if (map.get(ints[i])==1){
                list.add(ints[i]);
            }
            if (map.get(ints[i])==2){
                continue;
            }
        }
        System.out.println(list);
    }
}
详解:
首先我们用map集合将每个数字存到集合里,数字为key,出现的次数为value.结果为下:
{1=2, 2=1, 3=2, 5=2, 6=1}
但是因为map集合只能根据key拿value的特点,我们想拿出现一次的数字,我们将list集合中的每个值当做当做key,将value等于一值放到list中。

 

逻辑题(一)一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。

原文:https://www.cnblogs.com/shiji7/p/11961952.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!