- Map:
1. map是键值对关系,它将键映射到值,一个映射不能包含重复的键,每个键最多只能映射到一个值,
意思是,键不能重复,值可以重复,键与之一一对应。
2.映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。
某些映射实现可明确保证其顺序,如 TreeMap 类;
另一些映射实现则不保证顺序,如HashMap 类。
3.map接口里的一些方法:
- int size();//得到map长度。
- boolean isEmpty();//方法判断map是否为空。
- boolean containsKey(Object key);//方法是判断该key在map中是否有key存在。
- boolean containsValue(Object value);//方法是判断该key在map中是否有value存在。
- V get(Object key);//根据键位得到值位。
- V put(K key, V value);//放值。
- V remove(Object key);//根据键位删除值。
- void putAll(Map<? extends K, ? extends V> m);//方法用于将指定映射中的所有映射复制到此映射。这些映射将替换此映射对当前位于此映射中的任何键的任何映射。
- void clear();//清除map里面的键位值位。
- Set<K> keySet();//获取集合中所有的键值集合。
- Collection<V> values();//获取集合中所有值的集合。
- Set<Map.Entry<K, V>> entrySet();//entrySet是 java中 键-值 对的集合,Set里面的类型是Map.Entry,一般可以通过map.entrySet()得到。entrySet实现了Set接口,里面存放的是键值对。一个K对应一个V。
还有许多方法,等等。。。。
下面我们来看看一些代码帮助理解,
//定义map 集合
Map<Object, Object> map = new HashMap<>();
//放值
map.put("1", "aa");
map.put("2", "bb");
map.put("4", "dd");
map.put("3", "cc");
map.put("5", "ee");
往map里面放值了,接下来就取值,有三种方式,第一种
// 方式1:得到所有的键
Set<Object> keySet = map.keySet();
for (Object object : keySet) {
System.out.println(object);
}
在控制台输出的是:12345.第二种:
// 方式2:得到所有的值
Collection<Object> values = map.values();
for (Object object : values) {
System.out.println(object);
}
在控制台输出的是:aa bb cc dd ee.第三种方式
// 方式3:得到所有的键和值
Set<Entry<Object, Object>> entrySet = map.entrySet();
for (Entry<Object, Object> entry : entrySet) {
System.out.println("键:" + entry.getKey() + " 值:" + entry.getValue());
}
在控制台输出的是:
键:1 值:aa
键:2 值:bb
键:3 值:cc
键:4 值:dd
键:5 值:ee
第三种方式呢,它既能输出键位,又能输出值位,能遍历海量数据。