【发布时间】:2016-03-14 02:24:22
【问题描述】:
我正在制作一个包含 3 种不同类型组的 ArrayList。我想要达到的目标是:
- 确保随机化(Collections.shuffle)(完成)
- 使用子列表,我可以在 ArrayList 中选择特定数量的元素(完成)
- 为防止运行程序时其他组出现重复,我实现了一个 HashSet(未完成)
我似乎无法将#2 和#3 结合起来。也许我只是不明白 HashSets 是如何完成的。这是我的代码:
class code {
public static void main(String[] args) {
//This is creating the ArrayList with everything added
List one = new ArrayList();
List two = new ArrayList();
List three = new ArrayList();
one.add("United States");
one.add("United Kingdom");
one.add("Italy");
one.add("France");
one.add("Russia");
one.add("Japan");
one.add("China");
one.add("Mexico");
two.add("Philippines");
two.add("Austria");
two.add("Canada");
two.add("Sweden");
two.add("Iceland");
two.add("India");
two.add("Australia");
two.add("Deutschland");
three.add("Norway");
three.add("Kosovo");
three.add("North Korea");
three.add("Sudan");
three.add("United Arab Emirates");
three.add("Bahrain");
three.add("Haiti");
//Formatting purposes
System.out.println("Country Categories: ");
System.out.println("#1 Countries = " + one);
System.out.println("#2 Countries = " + two);
System.out.println("#3 Countries = " + three);
System.out.println("\n");
//Randomization code. I use this method so it's shuffled the same way.
long seed = System.nanoTime();
Collections.shuffle(one, new Random(seed));
Collections.shuffle(two, new Random(seed));
Collections.shuffle(three, new Random(seed));
System.out.println("Group #1");
List largelist = one.subList(1,4);
System.out.println(largelist);
List mediumlist = two.subList(1,4);
System.out.println(mediumlist);
List smalllist = three.subList(1,3);
System.out.println(smalllist);
/*System.out.println("Group #2");
List largerlist = one.subList(1,4);
System.out.println(largerlist);
List mediumrlist = two.subList(1,4);
System.out.println(mediumrlist);
List smallrlist = three.subList(1,3);
System.out.println(smallrlist);
System.out.println("Group #3");
List largerrlist = one.subList(1,3);
System.out.println(largerrlist);
List mediumrrlist = two.subList(1,3);
System.out.println(mediumrrlist);
List smallrrlist = three.subList(1,3);
System.out.println(smallrrlist);*/
}
} //I only put one group because of issue I am having
我没有在其中实现我的 HashSet,因为它看起来很尴尬,但它是:
System.out.println("Group #1");
Set largeset = new HashSet(one);
for (Object wow : one) {
List largelist = one.subList(1,4);
System.out.println(largelist);
System.out.println(wow);
我想要的预期输出是这样的:
Group #1 //Week 1
[United Kingdom, Italy, Russia]
[Philippines, Canada, Iceland]
[Bahrain, Sudan]
Group #2
[France, United States, Japan]
[Sweden, India, Austria]
[Kosovo, North Korea]
Group #3
[Mexico, China]
[Australia, Deutschland]
[United Arab Emirates, Norway]
Randomization to Randomize,SubList 选择特定数组并打印它们,HashSet 防止重复。
请记住,这只是 1 周,现在我必须找到一种方法让它重现,以便每个国家/地区至少在 5 周内举行一次会议 -_- 帮助/建议/示例很感激,但弄清楚这一点是我的主要目标。
【问题讨论】:
标签: java arraylist hashset sublist