Java 如何从给定列表中随机生成?

Java 如何从给定列表中随机生成?,java,arrays,random,arraylist,Java,Arrays,Random,Arraylist,我遇到的问题是从特定列表中随机生成名称。我希望我的程序只能从这些名字中选择:鲍勃、吉尔、汤姆和布兰登。我试着学习数组,但我认为这对我来说有点太远了。到目前为止,我想我有一个大致的想法,但我不确定 import java.util.Random; public class NameGenerator { public static void main(String[] args) { System.out.println("This is

我遇到的问题是从特定列表中随机生成名称。我希望我的程序只能从这些名字中选择:鲍勃、吉尔、汤姆和布兰登。我试着学习数组,但我认为这对我来说有点太远了。到目前为止,我想我有一个大致的想法,但我不确定

import java.util.Random;

public class NameGenerator
{

        public static void main(String[] args)
        {

           System.out.println("This is a program that generates random names from a list!");

           int Bob = 0;
           int Jill = 0;
           int Tom = 0;
           int Brandon = 0;
           Random r = new Random();
在那之后,我被困在如何让发电机运转的问题上

更新: 我接受了你的建议,试着学习数组。到目前为止,这就是我所拥有的

ArrayList<String> names = new ArrayList<String>();
names.add("Bob");
names.add("Jill");
names.add("Tom");
names.add("Brandon");

char index = randomGenerator.nextChar(names.size());
String anynames = names.get(index);
System.out.println("Your random name is" + anynames + "now!");
ArrayList name=new ArrayList();
名称。添加(“Bob”);
姓名。添加(“吉尔”);
姓名。加上(“汤姆”);
名称。添加(“布兰登”);
char index=randomGenerator.nextChar(names.size());
字符串anynames=names.get(索引);
System.out.println(“您的随机名称是“+anynames+”now!”);

然而现在它说randomGenerator不能被解析,void方法不能返回值。有没有关于我哪里出错的想法?

一个小提示-
Random r=new Random
创建了一个新的“Random”实例。由于您使用的是Eclipse,因此将具有自动完成功能。声明随机“r”的实例后,如果使用
r.
您可能会发现一些有用的东西

此外,如果将“名称”存储在数组中,则可以以相当简单的方式访问它们。剩下的我就让你来解决了


良好的编码:)

您可以将
数组列表洗牌并获取第一个元素,或者迭代并以不同的顺序获取所有元素

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class NameGenerator {
    public static void main(String[] args) {
        String[] peoples = {"Bob","Jill","Tom","Brandon"};
        List<String> names = Arrays.asList(peoples);
        Collections.shuffle(names);
        for (String name : names) {
            System.out.print(name + " ");
        }
    }
}

您可以用更少的行来表达它:

String[] names = {"Bob", "Jill", "Tom", "Brandon"};
int index = Math.random() * names.length;
String name = names[index];
System.out.println("Your random name is" + name + "now!");
publicstaticvoidmain(字符串[]args){
String[]peoples={“Bob”、“Jill”、“Tom”、“Brandon”};
列表名称=数组.asList(人);
int index=new Random().nextInt(names.size());
字符串名称=names.get(索引);
系统输出打印(名称+“”);
看看这有多简单?我给了4个简单的名字,可以用单词之类的词来代替。代码中的“4”表示字符串中的名字数。这是最简单的。对于那些想要更短的名字的人(我所做的只是减少间距):


因为这是你自己的练习,如果我给你答案,它会“毁掉它”,我会给你一个一般性的提示。将可能的名称列表存储在数组(或列表,或任何容器)中然后生成一个随机索引,从列表中选择名称。数组绝对是你想要的。如果你真的是编程新手,你可能想要一本书或一本好的教程(“在30天内自学Java”)书籍还不错。如果你是Java新手,请点击Java教程以提高速度。Borgeader是对的,帮助会毁掉它——解决它,这是一个很大的问题。另请参阅@Tominizer,
randominizer
实例化在哪里?提供所有代码以帮助你。
String[] names = {"Bob", "Jill", "Tom", "Brandon"};
int index = Math.random() * names.length;
String name = names[index];
System.out.println("Your random name is" + name + "now!");
public static void main(String[] args) {
    String[] peoples = {"Bob", "Jill", "Tom", "Brandon"};
    List<String> names = Arrays.asList(peoples);
    int index = new Random().nextInt(names.size());
    String name = names.get(index);
    System.out.print(name+ " ");
import java.util.*; 

public class characters 
{
    public static void main(String[] args)
    {
       Random generate = new Random();
       String[] name = {"John", "Marcus", "Susan", "Henry"};

       System.out.println("Customer: " + name[generate.nextInt(4)]);      

    }
}
import java.util.*; 
public class characters{ 
public static void main(String[] args){
Random generate = new Random(); 
String[] name = {"John", "Marcus", "Susan", "Henry"};
System.out.println("Customer: " + name[generate.nextInt(4)]); }}