Java 随机取list对象的数据 ,并返回N个值,重复数据判断等。代码如下
/**
* 随机取值
* @param list 随机取值对象
* @param length 取值个数
* @return
*/
public static List<String> randomValues(List<String>list,int length){
Set<String> randomSource=new HashSet<String>(list);
//重复数据防越界
if(randomSource.size()<=length){
return new ArrayList<String>(randomSource);
}
List<String>randomResult=new ArrayList<>(randomSource);
Set<String> randomList=new HashSet<String>();
Random random =new Random();
while (randomList.size()<length){
randomList.add(randomResult.get(random.nextInt(randomResult.size())));
}
return new ArrayList<>(randomList);
}
public static void main(String[] args) {
//遍历取值
randomValues( Arrays.asList("1","2","5","32","2","3","6","3","3"),5).forEach(System.out::println);
}