- Map集合:
- map集合中的元素都是成对出现,成对存储的
- map集合中的元素都是以一对键和值的形式组成存在的,称为键值对,理解为夫妻对
- map集合中的键不能重复存储,值可以重复
- map集合中的每一个键 对应着一个值
-
- 方法:
- V put(K key, V value) 把指定的键与指定的值添加到Map集合中
- V remove(Object key) 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值
- Set<Map.Entry<K,V>> entrySet() 获取到Map集合中所有的键值对对象的集合(Set集合)
- V get(Object key) 根据指定的键,在Map集合中获取对应的值
- Set<K> keySet() 获取Map集合中所有的键,存储到Set集合中
- Map集合遍历的两种方式
- 方式1:根据键找值的方式
- //a, 获取到Map集合中所有的键,返回对应的Set集合
- //b, 遍历键的集合,获取到每一个键
- //c, 通过键,找到对应的值
- //获取到Map集合中所有的键,返回对应的Set集合
- Set<String> keys = map.keySet();
- //遍历键的集合,获取到每一个键
- for (String key : keys) {
- //通过键,找到对应的值
- Student s = map.get(key);
- System.out.println( key + "..." + s.getName() + "..." + s.getAge() );
- }
-
- 方式2:根据键值对对象找键和值的方式
- //a, 获取Map集合中所有的键值对元素,返回对应的Set集合
- //b, 遍历键值对元素集合,获取到每一个键值对元素对象
- //c, 通过键值对元素对象,获取对应的键,和对应的值
- //获取Map集合中所有的键值对元素,返回对应的Set集合
- Set< Map.Entry<String, Student>> entrySet = map.entrySet();
- //遍历键值对元素集合,获取到每一个键值对元素对象
- for (Map.Entry<String, Student> entry : entrySet) {
- //通过键值对元素对象,获取对应的键,和对应的值
- //找键
- String key = entry.getKey();
- //找值
- Student s = entry.getValue();
- //打印
- System.out.println( key+"..."+s.getName()+"..."+s.getAge() );
- }
- HashMap:
- 特点:
- 是Map集合的子集合
- 底层采用哈希表结构
- HashMap集合中的key不能重复,通过重写hashCode() 与 equals()方法来保证键的唯一。
- 不能保证元素存与取的顺序完全一致
- LinkedHashMap:
- 特点:
- 是HashMap集合的子集合
- 底层采用哈希表+链表结构
- LinkedHashMap集合中的key不能重复,通过重写hashCode() 与 equals()方法来保证键的唯一。
- Collections中的方法:
- public static <T> void sort(List<T> list) 排序
- public static void shuffle(List<?> list) 集合中的元素存储位置随机打乱