在java中的列表<Integer>中随机播放值

Aks*_*hay 0 java

我试图在java中的整数列表中洗牌.我尝试使用以下方法,但它没有被洗牌.

List<Integer> dataList1 = new ArrayList<Integer>();
//adding values to list
Collections.shuffle(Arrays.asList(dataList1));
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

Gil*_*een 6

shuffle将您传递的列表随机播放.目前,您传递的列表不是dataList1从中创建的新列表dataLits1.对于那个新的列表,你没有引用,所以一旦你完成了洗牌,你就不再能够访问具有混洗结果的新创建的列表了.

相反,你应该做的是:

Collections.shuffle(dataList1);
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的,但是忽略了正在混洗的列表是单例列表的点,其中该元素是`dataList1`.你不能改变一件事,并期望它是不同的;)所以,即使你坚持对列表的引用,它也不会做预期的事情. (2认同)