在一个数组中随机取四个数字



我有一个数组

   String[] arr={"a","b","c","d","e","f","a","d","m","e"};

我想从这个数组中随机得到4个不同的数字。我该怎么办?

List<String> shuffled = Collections.shuffle(Arrays.asList(arr));
List<String> fourRandoms = shuffled.subList(0, 4);

或者,如果你想保持数组不变:

List<String> shuffled = Collections.shuffle(new ArrayList<String>(Arrays.asList(arr)));
List<String> fourRandoms = shuffled.subList(0, 4);

EDIT:要从数组中删除重复项,请使用Set:

Set<String> uniqueValues = new HashSet<String>(Arrays.asList(arr));
List<String> shuffled = Collections.shuffle(new ArrayList<String>(uniqueValues));
List<String> fourRandoms = shuffled.subList(0, 4);

学习标准Java集合,避免完全使用数组。如果不允许重复,则应从一开始就使用Set。

最新更新