0
3 개의 배열 목록에 항목을 만들고 추가하는 방법이 하나 있습니다. 그 중 2 개는 <String>
이고 다른 하나는 <Integer>
입니다. 문제는 내가 (3 가지) 다른 항목을 제거해야하는 항목을 제거 할 다른 방법으로 사용해야한다는 것입니다.Java에서 다른 배열 목록 유형을 반환하려면 어떻게해야합니까?
이것은 "추가"방법 :
public static void Hire() throws IOException{
String name;
String category,st_wage,st_id;
int wage,id;
BufferedReader ob_name = new BufferedReader (new InputStreamReader (System.in));
BufferedReader ob_category = new BufferedReader (new InputStreamReader (System.in));
BufferedReader ob_wage = new BufferedReader (new InputStreamReader (System.in));
BufferedReader ob_id = new BufferedReader (new InputStreamReader (System.in));
//name on name_list[id]
//cat. on cat_list[id]
//wage on wage_list[id]
System.out.println("Driver Name: ");
name = ob_name.readLine();
System.out.println("Driver License: ");
System.out.println("1 - Motorcycle");
System.out.println("2 - Van");
System.out.println("3 - Truck");
category = ob_category.readLine();
System.out.println("Wage: ");
st_wage = ob_wage.readLine();
wage = Integer.parseInt(st_wage);
System.out.println("Driver ID: ");
st_id = ob_id.readLine();
id = Integer.parseInt(st_id);
ArrayList<String> name_list = new ArrayList<String>();
name_list.add(id, name);
ArrayList<String> cat_list = new ArrayList<String>();
cat_list.add(id, category);
ArrayList<Integer> wage_list = new ArrayList<Integer>();
wage_list.add(id, wage);
Manage();
}
그리고 이것은 "제거"방법 :
public static void Fire (ArrayList<String> name_list, ArrayList<String> cat_list, ArrayList<String> wage_list) throws IOException{
int id;
BufferedReader ob_id = new BufferedReader (new InputStreamReader (System.in));
BufferedReader ob_op = new BufferedReader (new InputStreamReader (System.in));
//name on name_list[id]
//cat on cat_list[id]
//wage on wage_list[id]
System.out.println("Driver ID: ");
String st_id = ob_id.readLine();
id = Integer.parseInt(st_id);
String name = name_list.get(id);
System.out.println("Are You Sure to fire Driver "+name+"? (Y/N)");
char op = (char) ob_op.read();
if(op == 'Y' || op == 'y'){
name_list.remove(id);
cat_list.remove(id);
wage_list.remove(id);
}
Manage();
}
대신 드라이버 용 클래스를 만들고 싶습니다. 이건 지저분 해. – fge
코드에 BufferedReader가 5 개 추가되었으므로 하나만 있으면됩니다. – Kayaman
[object denial] (http://stackoverflow.com/a/3725728/40342)의 고전적인 경우 : 병렬 목록을 사용하지 말고 'Driver'객체의 단일 목록을 사용해야합니다. 비 관련 메모에서는 여러 개의 'BufferedReader'를 만들 필요가 없으며 유해 할 수도 있습니다. 단 하나만 사용하십시오. –