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()); } } }}