Map通过map.keyset或者Map.Entry遍历;map多个value对应一个key,逆向转成一个key对应一个list;通过邮编查多个地名

时间:2022-09-18 19:16:08
Map用于表达对象间的联系,类似于数学上“函数”的概念,它在其内部管理着“键值对儿”。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


public class MapTest {


/**
* @param args
*/
public static void main(String[] args) {
Map<String,String> map=new HashMap<String, String>();
map.put("cat","猫");
map.put("dog","狗");
map.put("horse","马");
map.put("desk","桌子");
map.put("table","桌子");
map.put("table","重复");
System.out.println(map.get("table"));
System.out.println("-------------------");
//遍历,将key放入set集合用迭代器遍历
Set key=map.keySet();
Iterator it=key.iterator();
while (it.hasNext()) {
Object x=it.next();
System.out.println(x+"---->"+map.get(x));//不一定是有顺序的
}

System.out.println("-------------------");

//将整个map实体放进去遍历

Set set=map.entrySet();
Iterator iterator=set.iterator();
while (iterator.hasNext()) {
//遍历每个map实体
Map.Entry<String,String> entry=(Map.Entry<String, String>)iterator.next();
System.out.println(entry.getKey()+"---->"+entry.getValue());//不一定是有顺序的

}
}


}

map多个value对应一个key,逆向转成一个key对应一个list;通过邮编查多个地名


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;


public class MapFindNo {


/**
* @param args
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Map<String,String> map=new HashMap<String, String>();
map.put("中关村", "100086");
map.put("中发电子城", "100086");
map.put("中关村海龙", "100088");
map.put("北京大学", "100080");
map.put("*", "100020");
map.put("劳动公园", "100020");
map.put("中山公园", "100020");
map.put("北海", "100021");
map.put("北航", "100021");
Set set=map.entrySet();
Iterator it=set.iterator();
Map<String, List> map2=new HashMap<String, List>();
while (it.hasNext()) {
Map.Entry<String,String> entry=(Entry<String, String>) it.next();
List lst = map2.get(entry.getValue());
if (lst==null) {
lst=new ArrayList();
map2.put(entry.getValue(), lst);
}
lst.add(entry.getKey());
}

List max=new ArrayList();
Set set2=map2.keySet();
Iterator it2=set2.iterator();

while (it2.hasNext()) {
Object x=it2.next();
List lst2=map2.get(x);
if (lst2.size()>max.size()) {
max=lst2;
}
}
System.out.println(max);

}


}