Java 从给定列表中做出不同的选择
我正试图从给定的集合中创建一个独特的成员团队。这就是我目前所拥有的Java 从给定列表中做出不同的选择,java,arraylist,hashmap,Java,Arraylist,Hashmap,我正试图从给定的集合中创建一个独特的成员团队。这就是我目前所拥有的 import java.util.*; import java.lang.*; class Main { public static void main (String[] args) throws java.lang.Exception { /* Putting all team-mates in HashMap */ HashMap<String, Integer>
import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
/* Putting all team-mates in HashMap */
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
/* Printing out the random name and the Unique number with it*/
List<Integer> valuesList = new ArrayList<Integer>(map.values());
List<String> keyList = new ArrayList<String>(map.keySet());
System.out.println("The Team members are :");
for (int i = 0; i < 3; i++)
{
int randomIndex = new Random().nextInt(valuesList.size());
Integer randomValue = valuesList.get(randomIndex);
String randomKey = keyList.get(randomIndex);
System.out.println(randomValue+" "+randomKey);
}
}
}
import java.util.*;
导入java.lang.*;
班长
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
/*将所有队友放入HashMap*/
HashMap=newHashMap();
地图放置(“a”,1);
地图放置(“b”,2);
地图放置(“c”,3);
地图.put(d,4);;
/*打印出随机名称及其唯一编号*/
列表值列表=新的ArrayList(map.values());
List keyList=newarraylist(map.keySet());
System.out.println(“团队成员是:”);
对于(int i=0;i<3;i++)
{
int randomIndex=new Random().nextInt(valuesList.size());
整数randomValue=valuesList.get(randomIndex);
字符串randomKey=keyList.get(randomIndex);
System.out.println(randomValue+“”+randomKey);
}
}
}
当我运行此操作时,我的列表中会出现重复,我是否使用Collections.shuffle(valuesList)
谢谢。你可以两次随机获得相同的数字,所以
集合。shuffle(…)
应该可以。你可以两次随机获得相同的数字,所以集合。shuffle(…)
应该可以。如果a、b、c、d都是你想要的,我会这样做:
import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
/* Putting all team-mates in a List*/
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
/* Printing out the random name */
System.out.println("The Team members are :");
for(int i = 0; i < 3; i++)
{
int randomIndex = new Random().nextInt(list.size());
//Integer randomValue = valuesList.get(randomIndex);
String randomValue = list.remove(randomIndex);
//String randomKey = keyList.get(randomIndex);
System.out.println(randomValue);
}
}
}
import java.util.*;
导入java.lang.*;
班长
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
/*将所有队友列入名单*/
列表=新的ArrayList();
列表。添加(“a”);
列表。添加(“b”);
列表。添加(“c”);
列表。添加(“d”);
/*打印出随机名称*/
System.out.println(“团队成员是:”);
对于(int i=0;i<3;i++)
{
int randomIndex=new Random().nextInt(list.size());
//整数randomValue=valuesList.get(randomIndex);
String randomValue=list.remove(randomIndex);
//字符串randomKey=keyList.get(randomIndex);
System.out.println(随机值);
}
}
}
一旦选定,从列表中删除选定的元素将确保它们不会重新出现
行数也少了。如果你只想要a、b、c、d,我会这样做:
import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
/* Putting all team-mates in a List*/
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
/* Printing out the random name */
System.out.println("The Team members are :");
for(int i = 0; i < 3; i++)
{
int randomIndex = new Random().nextInt(list.size());
//Integer randomValue = valuesList.get(randomIndex);
String randomValue = list.remove(randomIndex);
//String randomKey = keyList.get(randomIndex);
System.out.println(randomValue);
}
}
}
import java.util.*;
导入java.lang.*;
班长
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
/*将所有队友列入名单*/
列表=新的ArrayList();
列表。添加(“a”);
列表。添加(“b”);
列表。添加(“c”);
列表。添加(“d”);
/*打印出随机名称*/
System.out.println(“团队成员是:”);
对于(int i=0;i<3;i++)
{
int randomIndex=new Random().nextInt(list.size());
//整数randomValue=valuesList.get(randomIndex);
String randomValue=list.remove(randomIndex);
//字符串randomKey=keyList.get(randomIndex);
System.out.println(随机值);
}
}
}
一旦选定,从列表中删除选定的元素将确保它们不会重新出现
行也更少。
导入java.lang.*代码>不需要java.lang.Exception
?导入java.lang.*代码>不需要java.lang.Exception
??是的,将集合洗牌并按结果顺序打印。或者,如果不需要对集合进行重新排序,则对键列表进行洗牌并使用它们。Collections.shuffle(ValuesList)似乎与ValuesList配合使用。remove(randomIndex)是的,洗牌集合并按结果顺序打印。或者,如果不需要对集合进行重新排序,则对键列表进行洗牌并使用它们。Collections.shuffle(ValuesList)似乎可以与ValuesList.remove(randomIndex)一起使用