<>遍历HashMap
Map<Integer, String> map = new HashMap<>(); map.put(1, "aaa"); map.put(2, "bbb"
); map.put(3, "ccc"); map.put(4, "ddd");
*
普遍使用,二次取值
for(String key : map.keySet()){ System.out.println(key + ":" + map.get(key)); }
*
迭代器 entrySet
Iterator<Map.Entry<Integer, String>> mapiter = map.entrySet().iterator(); while
(mapiter.hasNext()) { @SuppressWarnings("unchecked") Map.Entry<Integer, String>
entry= mapiter.next(); System.out.println(entry.getKey() + ": " + entry.getValue
()); }
*
推荐,尤其是容量大时
for(Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println(
entry.getKey() + ": " + entry.getValue()); }
*
遍历所有的value,但不能遍历key
for(String str : map.values()) { System.out.println(str); }
*
迭代器keySet
Iterator<Integer> iter = map.keySet().iterator(); while(iter.hasNext()) { int
key= iter.next(); System.out.println(key + ": " + map.get(key)); }
*
lambda表达式
map.forEach((key, value) ->{ System.out.println(key + ": " + value); });
*
Streams API单线程
map.entrySet().stream().forEach((entry) ->{ System.out.println(entry.getKey() +
": " + entry.getValue()); });
<>Iterator遍历之动态删除
Map<Integer, String> map = new HashMap<>(); map.put(1, "aaa"); map.put(2, "bbb"
); map.put(3, "ccc"); map.put(4, "ddd"); Iterator<Integer> iter = map.keySet().
iterator(); while(iter.hasNext()) { int key = iter.next(); System.out.println(
key+ ": " + map.get(key)); if(key == 2) { iter.remove(); } } Iterator<Map.Entry<
Integer, String>> mapiter = map.entrySet().iterator(); while(mapiter.hasNext())
{ @SuppressWarnings("unchecked") Map.Entry<Integer, String> entry = mapiter.next
(); System.out.println(entry.getKey() + ": " + entry.getValue()); if(entry.
getKey() == 2) { mapiter.remove(); } }
<>Arrays.asList()
使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException异常
【说明
】asList()的返回对象是一个Arrays内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组
【注意】
* 传递的数组必须是对象数组,而不是基本类型
* 使用集合的修改方法add()/remove()/clear()会抛出异常
* List<String> list = new ArrayList<String>(Arrays.asList("aaa", "bbb",
"ccc"))