java集合Map常见的遍历方式,以及通过值来获取对应的键的操作

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
Map m=new HashMap();
m.put("Tom", "CoreJava");
m.put("John", "Oracle");
m.put("Susan", "Oracle");
m.put("Jerry","JDBC");
m.put("Jim", "Unix");
m.put("Kevin", "JSP");
m.put("Lucy", "JSP");
m.put("Allen", "JDBC");
m.put("Lucy","CoreJava");
Set s=m.entrySet();

for (Object o : s) {
System.out.println(o);
}

/*
* 注:HashMap重写了toString
* System.out.println(m);
* */

/*
* 第一种遍历方式,这种方式遍历的是键的集合
*通过获取键的集合来进行遍历,通过m.Get(key)来获取对应的值 
* Set<String> s=m.keySet();
for (String key : s) {
String value=(String) m.get(key);
System.out.println(key+":"+value);
}*/


/*第二种遍历,注意这里是只能遍历值的集合
* 第二种遍历的方式,这种方式是遍历值得集合,
* Collection c=m.values();
for (Object obj : c) {
System.out.println(obj);
}*/

/*第三种遍历,这种方式获取的是键和值的映射
* 然后通过m.getKey()和m.getValue()来获取对应映射的键和值
* Set <Map.Entry<String, String>>s=m.entrySet();
Iterator<Map.Entry<String, String>> it=s.iterator();
while(it.hasNext()){
Map.Entry<String, String> sss= it.next();
System.out.println(sss.getKey()+":"+sss.getValue());
}*/


//System.out.println("-----下面是教JSP的老师-----");
//ArrayList al=valueGetKey(m,"JSP");
//System.out.println(al);
}


//下面这个函数是通过对应的值得集合来获取值相同的键的集合返回对应的ArrayList
private static ArrayList valueGetKey(Map m,String value){
Set set=m.entrySet();
ArrayList arr=new ArrayList();
Iterator it=set.iterator();
while(it.hasNext()){
Map.Entry<String ,String> entry=(Map.Entry<String, String>)it.next();
if(entry.getValue().equals(value)){
String s=(String)entry.getKey();
arr.add(s);
}
}
return arr;
}
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值