「Java」Listの要素にMap型の値を追加するサンプル
説明
1.UserDeInfo java.util.Map.put(String key, UserDeInfo value)
指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。
パラメータ:
key – 指定された値が関連付けられるキー
value – 指定されたキーに関連付けられる値
2.java.util.Map.Entry<String, UserDeInfo>
マップのエントリ(キーと値のペア)です。Map.entrySetメソッドは、
このクラスに属する要素を持つマップのコレクション・ビューを返します。マップ・エントリ
3.Set<Entry<String, UserDeInfo>> java.util.Map.entrySet()
このマップに含まれるマッピングのSetビューを返します。
Javaコード
package com.arkgame.study;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//Userクラスの定義
class UserDeInfo {
private int age;
private String username;
private String pwd;
public UserDeInfo(int age, String username, String pwd) {
super();
this.age = age;
this.username = username;
this.pwd = pwd;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
public class ListMapElement {
public static void main(String[] args) {
List<Map<String, UserDeInfo>> mpLst = new ArrayList<Map<String, UserDeInfo>>();
Map<String, UserDeInfo> mp = new HashMap<String, UserDeInfo>();
// Userクラスのインスタンス作成
UserDeInfo user01 = new UserDeInfo(21, "user_001", "123");
UserDeInfo user02 = new UserDeInfo(31, "user_002", "456");
UserDeInfo user03 = new UserDeInfo(41, "user_003", "789");
// キーと値を挿入
mp.put("keyA", user01);
mp.put("keyB", user02);
mp.put("keyC", user03);
// リストにmapを追加
mpLst.add(mp);
System.out.println("List要素の数:" + mpLst.size());
System.out.println("Map要素の数:" + mp.size());
for (Map<String, UserDeInfo> cftMap : mpLst) {
for (Map.Entry<String, UserDeInfo> me : cftMap.entrySet()) {
System.out.println("キー: " + me.getKey() + " 年齢:" + me.getValue().getAge() + " ユーザ名:"
+ me.getValue().getUsername() + " パスワード:" + me.getValue().getPwd());
}
}
}
}
実行結果
List要素の数:1
Map要素の数:3
キー: keyA 年齢:21 ユーザ名:user_001 パスワード:123
キー: keyB 年齢:31 ユーザ名:user_002 パスワード:456
キー: keyC 年齢:41 ユーザ名:user_003 パスワード:789