JAVA基础复习十八-Map集合、Collections类
来源:互联网 发布:react js 中文教程 编辑:程序博客网 时间:2024/05/17 00:15
一、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和其子类就行了
阅读全文
0 0
- JAVA基础复习十八-Map集合、Collections类
- Java基础复习:Map集合常用类 && Collections类 && Arrays类
- JAVA基础再回首(十八)——Map集合概述及成员方法、Map集合的三个子类、Collections类
- Java基础复习:Map集合的输出
- Java基础复习之遍历Map集合
- 黑马程序员-java基础之集合Map集合,Collections,Arrays工具类
- 黑马程序员————java基础---------集合之Map及Collections集合类
- 黑马程序员——Java基础—集合(Map、Collections)
- java基础-API-集合框架-Map、Collections、Arrays
- 黑马程序员—java基础学习--Map集合、Collections,Arrays工具类
- 黑马程序员——Java语言基础:集合框架(Collection、Map,工具类Collections、Arrays)
- java基础复习-map与collection set+list集合总结
- 黑马程序员---集合-Map集合,Collections类
- Java集合--Map、Collections和Arrays
- java基础/map/hasmap/linkedhasmap/treemap/collections工具类
- 黑马程序员——Java基础---集合<二>Map,Arrays,Collections
- Java基础 集合Map
- java基础-Map集合
- php一个生成唯一订单的函数
- ftp虚拟帐号的建立及相关使用
- ACdream1066
- JZOJ5463. 【NOIP2017提高A组冲刺11.8】证书
- Java序列化与反序列化
- JAVA基础复习十八-Map集合、Collections类
- mac下lua调用c生成的so文件
- vector用法
- 常用排序算法的Python实现
- RecyclerView 瀑布流显示图片
- maven项目的依赖管理
- MyBatis Generator 常用配置记录说明
- FFmpeg安装(windows环境)
- VS2015与Win10SDK的问题