Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从给定列表中做出不同的选择_Java_Arraylist_Hashmap - Fatal编程技术网

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)一起使用