读书人

java中的list、地图比较

发布时间: 2012-11-08 08:48:12 作者: rapoo

java中的list、map比较
我有一个(Map <路名,对应的实体类> )还有一个(List <Map <企业标识,住所> > )我想根据map里面的路名
和list里面的住所进行比较得到符合条件的List <Map <企业标识,住所> >
比如map中有个路名:舟山路
我希望得到list里面的住所包含舟山路的数据 比如:住所舟山路328号


舟山路220室


舟山路224号


世纪大道舟山路217号 只要住所里面包含舟山路就行了





[解决办法]
代码如下:
请仔细分析代码,debug理解。我也是花挺长时间写的。所以一定要有耐心、要细心。

Java code
package com.snow.test;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;public class CompareAddress {    public static void main(String[] args) {        Map<String, String> m1 = new HashMap<String, String>();        m1.put("舟山路", "舟山路1");                List<Map<String, String>> list = new ArrayList<Map<String, String>>();        Map<String, String> m2 = new HashMap<String, String>();        m2.put("百度", "舟山路328号");        m2.put("CSDN", "舟山路220室");        m2.put("谷歌", "舟山路224号");        m2.put("腾讯", "世纪大道舟山路217号");        m2.put("IBM", "西安");        list.add(m2);                Collection<String> c = m1.keySet();        String keyWord = null;        for (Iterator<String> iterator = c.iterator(); iterator.hasNext();) {            //System.out.println(iterator.next());            keyWord = iterator.next();        }        for(Map<String,String> temp : list){            Set<Map.Entry<String,String>> set = temp.entrySet();            for (Iterator<Map.Entry<String, String>> iterator = set.iterator(); iterator.hasNext();) {                Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator.next();                if(entry.getValue().contains(keyWord)) {                    System.out.println(entry.getValue());                }            //    System.out.println(entry.getValue());            }        }            }} 

读书人网 >J2SE开发

热点推荐