JAVA基础复习十八-Map集合、Collections类
2017-11-09 20:47
399 查看
一、Map集合概述和特点
* A:Map集合的特点 * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多只能映射到一个值 * B:Map接口和Collection接口的不同 * Map是双列的,Collection是单列的 * Map的键唯一,Collection的子体系Set是唯一的 * Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效
二、Map集合的功能
* a:添加功能 * V put(K key,V value):添加元素。 * 相同的键,把值覆盖,把覆盖的值返回。若是第一个,返回null * 如果键是第一次存储,就直接存储元素,返回null * 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值 * b:删除功能 * void clear():移除所有的键值对元素 * V remove(Object key):根据键删除键值对元素,并把值返回 * c:判断功能 * boolean containsKey(Object key):判断集合是否包含指定的键 * boolean containsValue(Object value):判断集合是否包含指定的值 * boolean isEmpty():判断集合是否为空 * d:获取功能 * Set<Map.Entry<K,V>> entrySet()://获取键值对对象,再用对象中的getKey和getValue方法获取键值。 * V get(Object key):根据键获取值 * Set<K> keySet():获取集合中所有键的集合 * Collection<V> values():获取集合中所有值的集合 * e:长度功能 * int size():返回集合中的键值对的个数
三、Map集合的遍历
* A:键找值思路: * 获取所有键的集合 * 遍历键的集合,获取到每一个键 * 根据键找值
* B:案例演示
* Map集合的遍历之键找值
* `HashMap
18.04_集合框架(Map集合的遍历之键值对对象找键和值)
* A:键值对对象找键和值思路: * 获取所有键值对对象的集合 * 遍历键值对对象的集合,获取到每一个键值对对象 * 根据键值对对象找键和值 * B:代码 * Map集合的遍历之键值对对象找键和值 HashMap<String, Integer> hm = new HashMap<>(); hm.put("张三", 23); hm.put("李四", 24); hm.put("王五", 25); hm.put("赵六", 26); Set<Map.Entry<String, Integer>> entrySet = hm.entrySet(); //获取所有的键值对象的集合 Iterator<Entry<String, Integer>> it = entrySet.iterator();//获取迭代器 while(it.hasNext()) { Entry<String, Integer> en = it.next(); //获取键值对对象 String key = en.getKey(); //根据键值对对象获取键 Integer value = en.getValue(); //根据键值对对象获取值 System.out.println(key + "=" + value); } for(Entry<String,Integer> en : hm.entrySet()) { System.out.println(en.getKey() + "=" + en.getValue()); }
四、LinkedHashMap
* LinkedHashMap的特点 * 底层是链表实现的可以保证怎么存就怎么取
五、TreeMap
* 传入的键也是要实现Comparator接口,或者自己写一个比较器泛型是传入的值的类型。
六、HashMap和Hashtable的区别
* HashMap和Hashtable的区别 * Hashtable是JDK1.0版本出现的,是线程安全的,效率低,HashMap是JDK1.2版本出现的,是线程不安全的,效率高 * Hashtable不可以存储null键和null值,HashMap可以存储null键和null值
七、Collections工具类
* A:Collections成员方法 public static <T> void sort(List<T> list) public static <T> int binarySearch(List<?> list,T key) public static <T> T max(Collection<?> coll) public static void reverse(List<?> list) public static void shuffle(List<?> list)
八、泛型固定下边界)
* ? super E,其实也是可以传入E及其子类,只不过相对于 ?extends E,一个是传入,一个是拿出。其实现在也不懂,不用管,知道是E和其子类就行了
相关文章推荐
- JAVA基础再回首(十八)——Map集合概述及成员方法、Map集合的三个子类、Collections类
- 复习java基础第四天(集合:List、Map、Collections、Enumeration)
- Java基础复习:Map集合的输出
- Java基础复习:Map集合常用类 && Collections类 && Arrays类
- Java基础复习之遍历Map集合
- 黑马程序员--java基础复习之集合
- Java基础之集合框架--Map
- java基础-- 集合框架 之 Map集合
- JAVA基础知识之Map集合
- 黑马程序员——JAVA基础——集合---概述、Collection中共性方法、List、Map、工具类Collections和Arrays
- IT十八掌作业_java基础第十天_集合
- 黑马程序员——Java基础---集合(Set及Map)
- Java基础 list map 集合
- 黑马程序员_java基础_集合(泛型、Map)
- Java基础复习:集合框架
- 黑马程序员java基础之Map集合
- [Java基础]----遍历Map集合,并获取map集合中的所有值得方法
- 黑马程序员---Java基础---Map集合
- java基础-Map集合
- Java基础知识强化之集合框架笔记55:Map集合之HashMap集合(HashMap<Integer,String>)的案例