java面试题

 
 1 /**
 2  * 写一个函数,它的做用是接受一个整数(假设为length),返回一个数组,数组的长度为length,
 3  * 数组中的内容为随机的0至(length-1)的值,而且不能重复。
 4  * 
 5  * 好比length为5的话,数组多是[1,0,3,2,4]。
 6  * 
 7  * @author Administrator
 8  *
 9  */
10 
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.Random;
14 
15 public class RandomArray {
16     public static void main(String[] args) {
17         int[] a = randomArray(5);
18         for (int b : a) {
19             System.out.println(b);
20         }
21     }
22 
23     public static int[] randomArray(int n) {
24         Random ran = new Random();
25         int[] a = new int[n];
26         List<Integer> values = new ArrayList<Integer>();
27         int index = 0;
28         while (true) {
29             int temp = ran.nextInt(n);
30             if (!values.contains(temp)) {
31                 values.add(temp);
32                 a[index++] = temp;
33             }
34             if (index == n)
35                 break;
36         }
37         return a;
38     }
39 }
View Code