我有一个包含50个Object的数组。

我想每次启动应用程序时从该List中随机获取4个对象。

然后将它们放在Map中。

如何从数组中随机抽取4个对象?

这是我的代码示例:

ArrayList<Deal> dealsTodayArray = dealsToday.getDeals();
Map<String, Object> map = new HashMap<String, Object>();
map.put("dealsTodayFirst", dealsTodayFirst);
map.put("dealsTodaySecond", dealsTodaySecond);
map.put("dealsTodayThird", dealsTodayThird);
map.put("dealsTodayForth", dealsTodayForth);

最佳答案

尝试将Collections.shuffleCollections.subList组合使用:

List<String> myStrings = new ArrayList<String>();
myStrings.add("a");
myStrings.add("b");
myStrings.add("c");
myStrings.add("d");
myStrings.add("e");
myStrings.add("f");
Collections.shuffle(myStrings);
System.out.println(myStrings.subList(0, 4));


输出(可能但不保证每次执行都会改变):

[c, b, f, d]

09-11 09:10