每次到集合这里遍历就是问题,所以开通了博客,来此记录我的成长过程。
今天看了下Map集合 ,总结了下遍历它的四种方式:
package com.sml.b_necessary;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* 我想看看map集合到底什么鬼,以及主要方法
*
* @author Administrator
*
*/
public class MapTest {
public static void main(String[] args) {
// 一直以来map都是存放键值对形式,key-value
// map集合存放的都必须是对象 ★
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("孙明亮", 1);
map.put("邓晨怡", 1);
map.put("马唯", 2);
map.put("马萌", 3);
map.put("王倩", 4);
// System.out.println(map.size());
// 遍历map集合的四种方式
// map集合是无序的★
// 1:Set<String> set = map.keySet();//得到所有key的集合
System.out.println("第一种:通过Map.keySet遍历key和value:");
for (String s : map.keySet()) {
Integer i = map.get(s);
int iso = i.intValue();
System.out.println(s + " \t " + iso);
}
System.out.println("========================================");
// 2.效率比keyset高n倍 map.entrySet() 以及遍历迭代器 iteator
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + "\t" + value);
}
// 3 通过map.values(),!!只能拿到值
System.out.println("========================================");
for (Integer s : map.values()) {
System.out.println(s);
}
// 4.直接通过map.entry();
// Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
// entry.getKey() ;entry.getValue(); entry.setValue();
// map.entrySet() 返回此映射中包含的映射关系的 Set视图。
System.out.println("========================================");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("key值为:" + entry.getKey() + "value值为:" + entry.getValue());
}
}
}