ArrayListとHashMapを利用する問題について
『問題』
(1)ArrayListのオブジェクトを生成する。
(2)「何回入力しますか?」と出力し、入力処理を行う。
(3)(2)で入力された回数分、以下の処理を行う。
1)HashMapのオブジェクトを生成する。
2)「名前を入力して下さい。」と出力し、入力処理を行う。
3)「性別を入力して下さい。」と出力し、入力処理を行う。
4)「性別を入力して下さい。」と出力し、入力処理を行う。
5) 1)で作成したHashMapに、それぞれ入力された
名前・年齢・性別を設定する。
6)値を設定したHashMapを(1)で作成したArrayListへ格納する。
(4)ArrayListの件数分、以下の処理を行う。
1)ArrayListより、HashMapを取得する。
2)取得したHashMapより、それぞれ設定されている
名前・年齢・性別を取得する。
3)HashMapより取得した名前・年齢・性別を出力する。
『実行結果』
何回入力しますか?
2
名前を入力して下さい。
iwata
年齢を入力して下さい。
27
性別を入力して下さい。
men
名前を入力して下さい。
hana
年齢を入力して下さい。
21
性別を入力して下さい。
women
名前=iwata
年齢=27
性別=men
名前=hana
年齢=21
性別=women
上記のようなプログラムを書く問題について質問します。
(3)までは自力で書けて実行結果もこの通りになったのですが、
(4)が分からずに、実行結果では値の部分がnullと出力されて
しまいました。自分でもこの記述は間違っているというのは感じる
のですが、どうしたら値がちゃんと格納されるのか分かりません。
「ArrayListより、HashMapを取得する。」←特にこの部分を
どう記述してよいのか・・・
分かる方、上記の部分の記述方法だけでも構わないので教えて下さい。
『自分で書いたプログラム』
import java.util.*;
import java.io.*;
public class Sample02{
public static void main(String[] args)throws IOException{
ArrayList list = new ArrayList();
System.out.println("何回で入力しますか?");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
for(int i=0; i<num; i++){
HashMap map = new HashMap();
System.out.println("名前を入力して下さい。");
String name = br.readLine();
System.out.println("年齢を入力して下さい。");
String age = br.readLine();
System.out.println("性別を入力して下さい。");
String sex= br.readLine();
map.put("名前", name);
map.put("年齢",age);
map.put("性別",sex);
list.add(name);
list.add(age);
list.add(sex);
}
for(int i=0; i<num; i++){
HashMap map = new HashMap();
String name = (String)map.get("名前");
String age = (String)map.get("年齢");
String sex = (String)map.get("性別");
System.out.println("名前=" + name);
System.out.println("年齢=" + age);
System.out.println("性別=" + sex);
}
}
}