「Java」拡張forループでMapのデータを取得するサンプル

書式
for (Map.Entry<String, List<クラス名>> mst : cftMap.entrySet()) {
使用例
1.Userクラスの定義

package com.arkgame.study.java.it;

public class User {
      private String msg;

      public User(String msg) {
            super();
            this.msg = msg;
      }

      /**
       * @return msg
       */
      public String getMsg() {
            return msg;
      }

      /**
       * @param msg セットする msg
       */
      public void setMsg(String msg) {
            this.msg = msg;
      }

}

2.動作確認mainクラス

package com.arkgame.study.java.it;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListObjDemo {

      protected static Map<String, List<User>> cftMap = new HashMap<String, List<User>>();

      public static void main(String[] args) {

            List<User> uLstA = new ArrayList<User>();
            List<User> uLstB = new ArrayList<User>();
            User us1, us3;
            us1 = new User("Auser001");
            uLstA.add(us1);

            cftMap.put("key01", uLstA);
            us3 = new User("Buser002");
            uLstB.add(us3);
            cftMap.put("key02", uLstB);

            for (Map.Entry<String, List<User>> mst : cftMap.entrySet()) {
                  System.out.println("キー:" + mst.getKey());
                  List<User> resLst = mst.getValue();
                  for (User res : resLst) {
                        System.out.println("値: " + res.getMsg());
                  }
            }

      }

}

3.実行結果
キー:key02
値: Buser002
キー:key01
値: Auser001

Java

Posted by arkgame