如何在不涉及第一个元素的情况下改组数组? [关闭]

问题描述 投票:-4回答:2

嗨我想要一个列表,并且索引0已修复,但另一个索引已经改变,我的列表有数据模型类

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 ]
java arrays random shuffle
2个回答
3
投票

这是一个使用列表的快速示例:

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

关键是:你可以使用sublist()方法创建一个视图,并将其改组。当然,您可以使用List接口的toArray()方法将列表转换回数组。


2
投票

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

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

原始列表现在从元素1及其后续进行洗牌。

© www.soinside.com 2019 - 2024. All rights reserved.