Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Arraylist - Fatal编程技术网

Java 如何允许用户添加、编辑、删除列表组?例如教室、小屋等

Java 如何允许用户添加、编辑、删除列表组?例如教室、小屋等,java,list,arraylist,Java,List,Arraylist,我希望有人能告诉我,我的做法是否正确,或者我的做法是否可行 我的最终目标是创建一个程序,您可以在其中创建小屋,创建露营者,并将其分配给小屋 我想到的是允许用户通过一个名为的方法创建一个新的ArrayList。我将创建一个Camper类,其中包含诸如姓名、年龄、性别等变量 然后我会写一个类似这样的方法 public static void userCreatesList(){ ArrayList<Camper> cabin = new ArrayList

我希望有人能告诉我,我的做法是否正确,或者我的做法是否可行

我的最终目标是创建一个程序,您可以在其中创建小屋,创建露营者,并将其分配给小屋

我想到的是允许用户通过一个名为的方法创建一个新的ArrayList。我将创建一个Camper类,其中包含诸如姓名、年龄、性别等变量

然后我会写一个类似这样的方法

      public static void userCreatesList(){


        ArrayList<Camper> cabin = new ArrayList<Camper>();


        }
问题是,当我向列表中添加项并将其打印出来时,该方法会起作用,因为每次调用该方法时,它都会打印不同的列表。然而,我不知道如何再次调用以前的列表,因为这里的每个列表都具有相同的变量或对象名称

所以,如果我通过调用这个方法三次来创建三个CAB列表,那么如果一个人最终都有相同的变量名,我如何将他们分配到一个特定的CAB

它必须是一个用户可以创建列表的程序,我不必用不同的变量名声明许多列表,因为每个营地可能有不同数量的小屋,他们必须能够创建自己的列表

如果我所做的是不可能的,我需要使用列表以外的其他类型的对象来完成此操作,请告诉我,我将研究如何使用该对象

我搜索了所有关于如何创建新组、新集合等的内容。。我找不到任何与我试图做的事情相关的东西来解释这一点


我希望他们能够给该组起一个名称,例如红色客舱、蓝色客舱、客舱1、客舱12等……

为此,我建议使用组名作为键,ArrayList作为值

private static Map<String, ArrayList<Camper>> cabinMap = new  HashMap<String, ArrayList<Camper>>();

public static void userCreatesList(String groupName){
    ArrayList<Camper> cabin = new ArrayList<Camper>();
    cabinMap.put(groupName, cabin);
}

稍后,您可以按名称访问此地图中的特定组,并向其中添加成员。

如果我这样做,它不会将每个露营者都列入该小屋的列表中吗?我只希望每个舱室都有一些露营者,但开始时列表将是空的,露营者将被添加到列表中。这仍然有效吗?这只是创建了一个空的ArrayList,并将其放入映射中,其中包含对它的特定groupName引用。稍后当您添加成员时,您应该这样做:public static void addcamper camper,String groupName{cabinMap.getgroupName.addcamper;}因此,如果我有一个camper类的ArrayList,并向其添加名称,那么我就制作一个映射。。。。。它只是将所有露营者添加到地图??在我练习之前,我只是想确保我理解了你说的话。而且地图只在课程开始时创建一次。这张地图稍后会包含所有的船舱。哦,我明白了。在您的情况下,您可以在您的主列表上进行迭代,查看并调用addCamperCamper,根据要添加露营者的组在每次迭代中使用字符串groupName。当然,您需要首先通过调用userCreatesListString groupName来创建这些组。因为它是静态的,所以静态变量在创建的对象之间共享。