list 转 map 经典实例

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

/**

 *<p>Copyright©2013-2015 AutoChina International Ltd. All rights reserved.</p>

 *@Author {Your_Name}

 */

public class ListToMap {

public static void main(String[] args) {

ListToMap list4Map = new ListToMap();  

        /** 

         * 构造数据 

         */  

        List<ItemDomain> list = new ArrayList<ItemDomain>();  

        ItemDomain test1 = new ItemDomain(1, "name1", "address1");  

        ItemDomain test2 = new ItemDomain(1, "name2", "address2");  

        ItemDomain test3 = new ItemDomain(1, "name3", "address3");  

        ItemDomain test4 = new ItemDomain(2, "name1", "address1");  

        ItemDomain test5 = new ItemDomain(2, "name2", "address2");  

        ItemDomain test6 = new ItemDomain(2, "name3", "address3");  

  

        list.add(test1);  

        list.add(test2);  

        list.add(test3);  

        list.add(test4);  

        list.add(test5);  

        list.add(test6);  

  

        // 装换  

        Map<Integer, List<ItemDomain>> map = new HashMap<Integer, List<ItemDomain>>();  

        map = list4Map.list4Map(list);  

        System.out.println(map);

        // 输出  

        list4Map.outOfMap(map);  

}

/** 

     * @description 实现将一个List转化为Map<Key,List>的样式 

     * @param 某个对象的List 

     * @return Map<Key,List> 

     */  

    public Map<Integer, List<ItemDomain>> list4Map(List<ItemDomain> list) {  

  

        Map<Integer, List<ItemDomain>> map = new HashMap<Integer, List<ItemDomain>>();  

  

        if ((list != null) && (list.size() != 0)) {  

            for (ItemDomain test : list) {  

                // 这一步是关键,也很巧妙吧,哈哈  

                List<ItemDomain> testList = map.get(test.getId());  

                if (testList == null) {  

                    testList = new ArrayList<ItemDomain>();  

                }  

                testList.add(test);  

                map.put(test.getId(), testList);  

            }  

        }  

        return map;  

    }  

  

    /** 

     * @description 对Map<key,List>的数据结构进行遍历 

     * @param Map<key,List> 

     * @return void 

     */  

    public void outOfMap(Map<Integer, List<ItemDomain>> map) {  

        Set<Integer> keySet = map.keySet();  

        for (Iterator<Integer> i = keySet.iterator(); i.hasNext();) {  

            Integer key = i.next();  

            System.out.println(key + "  :  ");  

            List<ItemDomain> testList = map.get(key);  

            for (ItemDomain test : testList) {  

                System.out.print("<--" + test.getName() + "--" + test.getAddress() + "-->");  

            }  

            System.out.println();  

        }  

    }  

}

猜你喜欢

转载自yangsen2012.iteye.com/blog/2203323