Map集合:(接口)
Map<K,V> 将键映射到值的对象
1、特点:
(1)将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射一个值。
(2)无序
2、Map集合和Collection集合的区别:
Map集合存储的元素是成对出现的,Map集合的键是唯一的,值是可重复的。
Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。
Map集合的数据结构值针对键有效,与值无关
Collection集合的数据结构是针对元素有效
3、Map集合的功能:
(1)添加功能:
V put(K key,V value):添加元素
(2)删除功能:
void clear():移除所有键值对关系
V remove(Object key):根据键删除键值对元素,并把值返回
(3)判断功能:
boolean containsKey(Object key):判断是否包含指定的键
boolean containsValue(Object value):判断是否包含指定的值
boolean isEmpty():判断是否为空
(4)获取功能:
Set<Map.Entry<K,V>> entrySet():返回的是键值对
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
Collection<V> values():获取集合中所有值的集合
(5)长度功能:
int size():返回集合中的键值对的对数
4、Map集合的两个常用的实现类:
HashMap 和 TreeMap
遍历:
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
map.put("Tom", "Jerry");
map.put("海绵宝宝", "派大星");
map.put("佩奇", "乔治");
//方法一:先获取键的集合,通过键来获取值
Set<String> set = map.keySet();
for(String key : set) {
String value = map.get(key);
System.out.println(key + "----" + value);
}
//方法二:先获取所有键值对的集合,通过键值对来获取键和值
// Set<Map.Entry<String, String>> set = map.entrySet();
// for(Map.Entry<String, String> me : set) {
// String key = me.getKey();
// String value = me.getValue();
// System.out.println(key + "----" + value);
// }
}
}
(1)HashMap:
是基于哈希表的Map接口实现
哈希表的作用是用来保证键的唯一性
(2)LinkedHashMap:
是HashMap的一个子类
是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序
由哈希表保证键的唯一性,由链表保证键盘的有序
(3)TreeMap:
键是红黑树结构,可以保证键的排序和唯一性