如何在不涉及第一个元素的情况下对数组进行洗牌?

how to shuffle an array without involving the first element?

嗨,我想打乱列表,索引 0 是固定的,但另一个索引一直在变化,我的列表有数据模型 class

sample =[Angelina Jolie.jpg, Ben Affleck.jpg, Bruce Willis.jpg, Michael Jackson.jpg, Miley Cyrus.jpg, Pharrell Williams.jpg, Rihanna.jpg, Ryan Gosling.jpg]

shuffled=[Angelina Jolie.jpg, Michael Jackson.jpg,Rihanna.jpg, Ryan Gosling.jpg, Miley Cyrus.jpg, Pharrell Williams.jpg, Ben Affleck.jpg, Bruce Willis.jpg ]

这是一个使用列表的简单示例:

String [] example = { "A", "B", "C", "D"};
List<String> items = Arrays.asList(example);
Collections.shuffle(items.subList(1, items.size()));
System.out.println(items);

要点是:您可以使用 sublist() 方法创建 view,然后对其进行随机播放。当然,您可以使用 List 接口的 toArray() 方法将您的列表转回数组。

使用 sublist() 创建一个新列表并对其进行洗牌,因为新的子列表由主列表支持,主列表将被洗牌到(第一个元素除外)

 List<String> subList = list.subList(1, list.size());
 Collections.shuffle(subList);

原始列表现在从元素 1 开始打乱顺序。