使用数组实现的过程如下所示代码:

import java.util.Random;

/**
 * 使用数组实现
 * @Description:

 * @File: Demo4.java

 * @Package None

 * @Author Hanyonglu

 * @Date 2012-10-18 下午06:27:38

 * @Version V1.0
 */
public class Demo4 {
    public static void main(String[] args) {
        int[] values = new int[20];
        Random random = new Random();
      
        for(int i = 0;i < values.length;i++){
            int number = random.nextInt(100) + 1;
          
            for(int j = 0;j <= i;j++){
                if(number != values[j]){
                    values[i]=number;
                }                            
            }
        }
      
        // 遍历数组并打印数据
        for(int i = 0;i < values.length;i++){
            System.out.print(values[i] + " ");
          
            if(( i + 1 ) % 10 == 0){
                System.out.println(" ");
            }
        }
    }
}

  上面这两个实现过程效率比较低的。因为在每次添加时都要去遍历一下当前列表中是否存在这个数字,时间复杂度是O(N^2)。我们可以这样思考一下:既然涉及到无重复,我们可以想一下HashSet和HashMap的功能。HashSet实现Set接口,Set在数学上的定义是无重复,无次序的集合。而HashMap实现Map,也是不允许重复的Key。这样我们可以使用HashMap或HashSet来实现。

  在使用HashMap实现时,只需要将它的key转化成数组Ok了,如下代码:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Random;
import java.util.Map.Entry;

/**
 * 使用HashMap实现
 * @Description:

 * @File: Demo.java

 * @Package None

 * @Author Hanyonglu

 * @Date 2012-10-18 下午06:12:50

 * @Version V1.0
 */
public class Demo {
    public static void main(String[] args) {
        int n = 0;
        Object[] values = new Object[20];
      
        Random random = new Random();
        HashMap<Object, Object> hashMap = new HashMap<Object, Object>();
      
        // 生成随机数字并存入HashMap
        for(int i = 0;i < values.length;i++){
            int number = random.nextInt(100) + 1;
            hashMap.put(number, i);
        }
      
        // 从HashMap导入数组
        values = hashMap.keySet().toArray();
      
        // 遍历数组并打印数据
        for(int i = 0;i < values.length;i++){
            System.out.print(values[i] + " ");
          
            if(( i + 1 ) % 10 == 0){
                System.out.println(" ");
            }
        }
      
//        Iterator iter = hashMap.entrySet().iterator();
//        // 遍历HashMap
//        while (iter.hasNext()) {
//            Entry<Integer, Integer> entry = (Entry)iter.next();
//            int key = entry.getKey();
//            n++;
//          
//            System.out.print(key + " ");
//          
//            if(n % 10 == 0){
//                System.out.println(" ");
//            }
//        }
    }
}