面试题:有101个数字,从0~99,其中有两个数字是重复的,求出这个重复的数字

代码:

public class Test {
    public static void main(String[] args) {
    
		// 定义大小为101的集合
        int a[] =new int[101];
        
        // 生成测试数据
        for (int i=0;i<100;i++){
            a[i]=i;
        }

		// 定义随机对象
        Random random = new Random();
        // 生成0~99之间的数字
        a[100]=random.nextInt(100);
        // 新建Set集合
        Set<Integer> set = new HashSet<>();
        // 遍历数组中所有的元素
        for (int b:a){
	        // 如果无法添加到set集合中,说明这个数字已经存在set集合中,那这个数字就是重复的数字
            if (!set.add(b)){
	            // 输出重复的数字
                System.out.println(b);
                // 结束for循环
                break;
            }
        }
        
    }
}

结果:

31

解释:

利用set集合的不可重复性

你可能感兴趣的:(java学习之路)