Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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 创建下一个对象并将其放置在ArrayList中_Java_Class_Object_Arraylist_Instances - Fatal编程技术网

Java 创建下一个对象并将其放置在ArrayList中

Java 创建下一个对象并将其放置在ArrayList中,java,class,object,arraylist,instances,Java,Class,Object,Arraylist,Instances,好吧,我有种感觉,解释我的意思可能会非常困难,不过,我要试试。 因此,基本上我想做的是创建下一个对象,并使用用户输入将其放置在数组列表中 是否可以使用ArrayList的计数来实现它? 假设我的构造函数允许传递一个名称以创建一个对象,那么我是否能够向用户请求该名称并在以后使用该名称,然后将其传递给已经创建的ArrayList 我觉得我不能很好地解释我的意思,英语不是我的第一语言,对不起。:) 公共类投票者 { 私有字符串名称; 私人ArrayList选民; 公众选民(){ this.name=

好吧,我有种感觉,解释我的意思可能会非常困难,不过,我要试试。 因此,基本上我想做的是创建下一个对象,并使用用户输入将其放置在数组列表中

是否可以使用ArrayList的计数来实现它? 假设我的构造函数允许传递一个名称以创建一个对象,那么我是否能够向用户请求该名称并在以后使用该名称,然后将其传递给已经创建的ArrayList

我觉得我不能很好地解释我的意思,英语不是我的第一语言,对不起。:)

公共类投票者
{ 
私有字符串名称;
私人ArrayList选民;
公众选民(){
this.name=“”;
投票者=新ArrayList();
}
公共投票者(字符串名称)
{
this.name=名称;
投票者=新ArrayList();
}
公共无效添加(投票者v)
{
如果(!this.voctors.contains(v))
{
本条增补(v);
}
}
}
公共静态void main(字符串[]args)
{   
投票者v1=新投票者(“管理员”);
投票者v=新投票者();
v、 添加(v1);
显示菜单();
int option=getInt(“输入选项:”,0,3);
while(选项!=结束)
{
如果(选项==1)
{
doOption1();
int count=v.countArray(v);
}
}
}
公共静态无效显示菜单()
{
System.out.println(“\n选项的简单菜单”);
System.out.println(“0.退出此菜单”);
System.out.println(“1.选项1”);
}
公共静态无效选项1()
{
System.out.println(“请输入以下要注册的详细信息
投票制度。”);
System.out.println(“全名”);
字符串名称=keyboard.nextLine();
//这就是我想要创建一个新对象并将其作为
//我的选民名单
}
公共静态int-getInt(字符串提示,int-min,int-max)
{
系统输出打印(提示);
int value=keyboard.nextInt();
而((值<最小值)| |(值>最大值))
{
System.out.println(“仅限无效-[“+min+”,“+max+”);
系统输出打印(提示);
value=keyboard.nextInt();
}
keyboard.nextLine();
返回值;
}

使用当前的算法,要将项添加到
投票者的
ArrayList
对象中,只需首先将
doOption1
的方法定义重新构建到下面的方法

public static void doOption1(Voter voter){
      System.out.println("Please, enter the below details to register for voting system.");
      System.out.println("Full name");
      String name = keyboard.nextLine();
      voter.add(new Voter(name)); // you could validate name before constructing the object if you see fit.
}
完成此操作后,您需要更改此代码:

while (option != END){
    if (option == 1){
       doOption1();
       int count = v.countArray(v);
    }
}
为此:

while (option != END){
    if (option == 1){
       doOption1(v); // notice the argument
       int count = v.countArray(v);
    }
}

好的,那么您希望允许用户通过用户输入定义对象属性,然后将构造的对象添加到ArrayList?首先,您需要一个扫描仪来读取用户输入,然后您需要将用户输入存储在一个变量中,或者直接将其添加到ArrayList中。您确实不清楚要问什么。最好的做法是:显示您当前的代码,并解释您遇到的问题。首先阅读“如何创建”。我想使用用户输入(在本例中为名称)作为构造函数的参数创建一个全新的对象,然后将这个新创建的类实例添加到ArrayList。@G.Martyna您必须至少提供一些代码,以便人们帮助您。当然,代码不必工作,但至少提供了您尝试过的内容。太棒了!我知道你从哪里来。现在,如果我的选民类中有更多的字段,我基本上只需要向这一行Voter.getvorters().add(new vorter(name))添加更多参数;正确的?正如我所说,这只是我代码中的一小部分,所以我意识到其中有很多缺失的部分。@G.Martyna这是正确的,如果在构造函数定义中有更多的参数,那么就必须添加更多的参数。非常感谢!它确实解决了我的问题!:)我还有一个问题(我知道已经有一段时间了)。如果我想保存这个新的投票者并将其保留在数组列表中以供其他时间使用,该怎么办?现在,它会将投票者添加到数组列表中,但每当我关闭应用程序并重新启动它时,我刚刚创建的新投票者就会消失。非常感谢!我确实有SQL的基本经验,但我想我会使用后一种解决方案!再次非常感谢你!:)
while (option != END){
    if (option == 1){
       doOption1(v); // notice the argument
       int count = v.countArray(v);
    }
}