public class NumberRandom {
/**
 * 现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。
 * 要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏
 * 幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。
 */
public static void main(String[] args) {

List list=new ArrayList();
int temp;

for(int i=1;i<=100;i++){
list.add(i);
}
for(int i=1;i<=98;i++){
do {
temp = (int) (Math.random() * 100 + 1);
} while (list.get(temp)=="0");
            list.set(temp, "0");
}
for(int i=1;i<=100;i++){
if((Integer)list.get(i)!=0)
System.out.println(list.get(i));
}            }
     }大家可以考下去执行下,谢谢帮助

解决方案 »

  1.   

    List<Integer> a 存100个数
    int[] b 存98个数
    List<Integer> bb = Arrays.asList(b);
    a.removeAll(bb); //集合相减
    for (Integer i : a) {
        System.out.println(i);
    }
      

  2.   

    支持一下Nirvana!!!
    恩,前提是你说的,只要找一下没有放到数组里的那两个数,直接用数组就好了,扫描一下含有98个数的数组,同时创建一个长度101的数组(第1位,也就是索引为0的不用),如果元素的值是4,那你就把4放到101数组的第5位,然后最后没有赋值的  也就是值为0的  就是我们要的。
    你是直接放到list里去的,感觉复杂了。