如何在java上返回不同的数组列表类型?

如何在java上返回不同的数组列表类型?,java,Java,我有一种方法可以创建项目并将其添加到3个数组列表中,其中2个是,另一个是。问题是我需要在另一个方法中使用它们(全部3个),该方法将删除我要从它们中删除的项 这是“添加”方法: publicstaticvoidhire()引发IOException{ 字符串名; 字符串类别、st_工资、st_id; int工资,id; BufferedReader ob_name=新的BufferedReader(新的InputStreamReader(System.in)); BufferedReader ob

我有一种方法可以创建项目并将其添加到3个数组列表中,其中2个是
,另一个是
。问题是我需要在另一个方法中使用它们(全部3个),该方法将删除我要从它们中删除的项

这是“添加”方法:

publicstaticvoidhire()引发IOException{
字符串名;
字符串类别、st_工资、st_id;
int工资,id;
BufferedReader ob_name=新的BufferedReader(新的InputStreamReader(System.in));
BufferedReader ob_category=新的BufferedReader(新的InputStreamReader(System.in));
BufferedReader ob_wage=新的BufferedReader(新的InputStreamReader(System.in));
BufferedReader ob_id=新的BufferedReader(新的InputStreamReader(System.in));
//姓名列表上的姓名[id]
//类别列表上的类别[id]
//工资清单上的工资[id]
System.out.println(“驱动程序名:”);
name=ob_name.readLine();
System.out.println(“驾驶执照”);
System.out.println(“1-摩托车”);
System.out.println(“2-Van”);
系统输出打印(“3-卡车”);
category=ob_category.readLine();
System.out.println(“工资:”);
st_wage=ob_wage.readLine();
工资=整数.parseInt(st_工资);
System.out.println(“驱动程序ID:”);
st_id=ob_id.readLine();
id=Integer.parseInt(st_id);
ArrayList name_list=新建ArrayList();
姓名列表。添加(id、姓名);
ArrayList目录=新的ArrayList();
类别列表。添加(id、类别);
ArrayList工资列表=新建ArrayList();
工资清单。添加(id,工资);
管理();
}
这就是“删除”方法:

publicstaticvoidfire(ArrayList名称列表、ArrayList类别列表、ArrayList工资列表)引发IOException{
int-id;
BufferedReader ob_id=新的BufferedReader(新的InputStreamReader(System.in));
BufferedReader ob_op=新的BufferedReader(新的InputStreamReader(System.in));
//姓名列表上的姓名[id]
//cat_列表中的cat[id]
//工资清单上的工资[id]
System.out.println(“驱动程序ID:”);
字符串st_id=ob_id.readLine();
id=Integer.parseInt(st_id);
String name=name\u list.get(id);
System.out.println(“您确定要启动驱动程序“+name+”?(是/否)”);
char op=(char)ob_op.read();
如果(op='Y'| | op='Y'){
名称列表。删除(id);
类别列表。删除(id);
工资清单。删除(id);
}
管理();
}

在具有自己索引的列表中添加元素时,您将获得数组索引超出绑定的异常。对于您的需求,您需要的只是一个简单的类

public class Driver {
  public String id ;
  public String name ;
  public String category ;
  public double wage ;

  public Driver(String id, String name) {
    this.id = id;
    this.name =name;
  }  

  // getter and setter methods
}
从用户获取所有输入后,创建一个新的驱动程序实例,并将其保存在
映射中

// Key = driverId and value = DriverEntity   
HashMap<String,Driver> map = new HashMap();
//Key=driverId,value=DriverEntity
HashMap=newHashMap();

此外,您还可以使用驱动程序Id添加或删除。

看起来您想为驱动程序创建一个类。这很混乱。你的代码中有5个额外的BufferedReader,你只需要一个。一个典型的例子是:你不应该使用并行列表,而应该使用单个
驱动程序
对象列表。还有一点与此无关:不需要创建多个
BufferedReader
,甚至可能是有害的,所以只使用一个。您应该使用驼峰形外壳。什么是
add(id,name)
?在一个简单的
列表中如何工作?!你为什么需要一份清单?该函数创建三个新列表,并为每个列表添加一个项目。为什么你需要三份清单?看起来您需要一个具有id、名称、cat和工资的对象,并将其添加到列表中。这意味着列表不会在
add
函数中创建,而是
add
会将该对象粘贴在新列表的末尾。祝你好运
public class Driver {
  public String id ;
  public String name ;
  public String category ;
  public double wage ;

  public Driver(String id, String name) {
    this.id = id;
    this.name =name;
  }  

  // getter and setter methods
}
// Key = driverId and value = DriverEntity   
HashMap<String,Driver> map = new HashMap();