原理:首先创建一个数组,用于存储1000000的数据长度,然后创建一个集合对象,往集合中添加元素,利用集合中的contains方法可以方便的检查出是否已经包含了要添加的数据。
如果方法的返回值为false,则不存在,则把这个数据添加到集合中,如果方法的返回值为true,说明集合中已经存在了这个数据,就可以把这个数据和第一次出现(利用集合的indexOf方法)的输出,然后退出循环。
代码如下:
package com.itheima;
import java.util.*;
public class Test{
public static void main(String[] args){
int[] arr = new int[1000000];
for(int i = 0; i<1000000;i++){
arr = i+1; //从1--1000000没有重复的
}
arr[1333] = 96;//将第1334个数改成96,这样就只有两个重复的数96
List<Integer> list = new ArrayList<Integer>();//创建一个集合对象
for(int i = 0 ; i < 1000000;i++){
Integer m = new Integer(arr);
//检查此时集合中是否包含要操作的数据,如果不包含则添加,包含则首先找到第一次出现的下标和此时的下标然后退出
if(!list.contains(m)){
list.add(m);
}else{
int j = list.indexOf(m) ;//第一次出现
System.out.println("第"+(j+1)+"个数和第"+(i+1)+"个数重复为:"+m);
break; //找到即退出
}
}
}
}
|