日期:2014-05-20  浏览次数:20673 次

JAVA如何从静态的数组里随机取不重复的值
JAVA如何从静态的数组里随机取不重复的值

import java.util.*;

public class Random1 {

public static void main(String[] args) {
// TODO Auto-generated method stub

int[] c = {1,2,3,4,5};

for(int i=0;i<2;i++){
Random ran=new Random();
int ad = ran.nextInt(c.length);

int result = c[ad];
int result1 = c[ad];

System.out.println("s = "+ad);
System.out.println("s1 = "+result);
System.out.println("s2 = "+result1);
}
}

}

两个问题
1:怎么才能使得取得的值不产生重复
2:将 ad 放到 result里为什么值改变了
3:为什么 result1 和 result 的值又是一样的

------解决方案--------------------
这个就是Set的用法
Java code
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class Test {
  public static void main(String[] args) {
    int[] c = { 1, 2, 3, 4, 5 };
    Set<Integer> set = new HashSet<Integer>();
    Random ran = new Random();
    while (set.size() < 2) {
      set.add(c[ran.nextInt(c.length)]);
    }
    for(Integer id : set) {
      System.out.println(id);
    }
  }
}