map
Map(很重要)、方法keySet、entrySet演示图解
Map:一次添加一对元素。Collection一次添加一个元素。Map也称为双列集合,Collection集合称为单列集合。其实Map集合中存储的就是键值对,Map集合必须保证键的唯一性。
常用方法:
1.添加:value put(key,value);返回一个和key关联的值,如果没有返回为null。
2.删除:void clear();清空map集合。value remove(key);根据制定的key翻出这个键值对。
3.修改:boolean containsKey(key);
boolean containsValue(value);
boolean isEmpty();
4.查询:value get(key);通过键获取值,如果没有该键返回null。当然可以通过返回null,来判断是否包含指定键。
int size();获取键值对分个数。
map中存储相同键时,会覆盖值
keySet
图解:
![](http://upload-images.jianshu.io/upload_images/11838925-d309a131d2e47b87.png?imageMogr2/auto-orient/strip|imageView2/2/w/924/format/webp)
keySet.png
举例:
取出map中的所有元素。原理,通过keySet方法获取map中所有的键所在的Set集合,再通过Set的迭代器获取到每一个键,再对每一个键通过map集合的get方法获取其对应的值即可。
package com.vv.map.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap<Integer,String> map = new HashMap<Integer,String>();
method(map);
}
private static void method(HashMap<Integer, String> map) {
map.put(8,"zhaoliu");
map.put(2,"zhaoliu");
map.put(7,"xiaoqiang");
map.put(6,"wangcai");
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
Integer key = it.next();
String value = map.get(it.next());
System.out.println(key + ":" + value);
}
}
}
entrySet
图解
![](http://upload-images.jianshu.io/upload_images/11838925-47514009e4a03042.png?imageMogr2/auto-orient/strip|imageView2/2/w/967/format/webp)
entrySet
.png
通过Map转成set就可以迭代,找到了另一个方法,entrySet,该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系的类型就是Map.Entry类型(k,v)
package com.vv.map.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap<Integer,String> map = new HashMap<Integer,String>();
method(map);
}
private static void method(HashMap<Integer, String> map) {
map.put(8,"zhaoliu");
map.put(2,"zhaoliu");
map.put(7,"xiaoqiang");
map.put(6,"wangcai");
Set<Map.Entry<Integer, String>> set = map.entrySet();
Iterator<Map.Entry<Integer, String>> it = set.iterator();
while(it.hasNext()){
Map.Entry<Integer, String> entry = it.next();
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ";;;;;;" + value);
}
}
}
只获取value时
package com.vv.map.demo;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap<Integer,String> map = new HashMap<Integer,String>();
method(map);
}
private static void method(HashMap<Integer, String> map) {
map.put(8,"zhaoliu");
map.put(2,"zhaoliu");
map.put(7,"xiaoqiang");
map.put(6,"wangcai");
Collection<String> values = map.values();
Iterator<String> it = values.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
转载至https://www.jianshu.com/p/430506b19b0d