【Map集合】
Map集合中常用方法:
1: 返回值:value值 put(K key, V value) 往Map集合中添加元素,如果key值重复,那么将返回被覆盖的value值.
2: 返回值:value值 get(Object key) 传入一个key值,返回相对应的value值.如果没有,则返回null.
3: 返回值:value值 remove(Object key) 传入一个key值,删除此key值与相对应的value值.返回被删除的value值.
Map集合的特点:
1:Map集合是一个双列集合,赋值的时候必须同时给key值和value值赋值.
2:Map集合是一个无序集合.
3:Map集合的key值不可以重复,value值可以重复.
4:Map集合中一个key值只能对应一个value值.
5:定义Map集合时,key和value可以使用相同的数据类型,也可以使用不同的数据类型.
Map集合的第一种遍历方式:(通过键查找值的方式)
返回值 Set<K> keySet() 返回此映射中包含的键的Set视图. 把Map集合中的键存储到一个Set集合中
遍历Map集合的步骤:
1:定义Map集合,往集合中添加元素.(put方法添加元素)
2:调用Map集合中的方法keySet,把Map集合中的键存储到一个Set集合中
3:遍历Set集合,获取Map集合所有的键值.
4:通过获取到的键,使用Map集合的方法get查找到对应的key值.
Map集合的第二种遍历方式:(遍历键值对的方式)
返回值 Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图
遍历Map集合的步骤:
1:定义一个Map集合,往集合中添加元素.(用put方法)
2:调用Mao集合中的方法 entrySet ,把Map集合中的每一个映射关系(结婚证)放入到Set集合中.
3:遍历Set集合,获取每个映射关系 Entry<K,V>.
4:使用 Entry<K,V> 中的方法 getKey 和 getValue 获取键和值
★注意:使用自定义类型作为Map集合的键Key 时, 必须要重写hashcode 和 equals . 来保证key 的唯一性.
Map集合中的实现类:
◆ HashMap<K,V> 线程不安全,运行速度快
底层数据结构是哈希表,特点 无序.由于要保证键的唯一,不重复,需要重写键的 hashcode() 方法 和 equals()方法.
◆ LinkedHashMap<K,V> 继承(extends) HashMap
底层数据结构为哈希表_链表结构.特点: 有序,不重复.由于要保证键的唯一,不重复,需要重写键的 hashcode() 方法 和 equals()方法.
◆ Hashtable 线程安全,运行速度慢
和HashMap一样. JDK1.2开始被 HashMap取代. 特点 不能存 null 值.
虽然Hashtable被取代了,但是他的子类 Properties 依然活跃在开发的舞台.
可变参数:
JDK1.5之后出来的新特性. 可以接受多个同类型的参数.
底层就是一个数组
格式: 修饰符 返回值类型 方法名 (参数类型...形参名){ }
★注意: 1:一个方法的参数,只能使用一个可变参数
2:如果方法的参数有多个,可变参数必须写在参数列表的末尾.
Arrays数组工具类:
用来对数组进行操作,是一个静态方法,直接类名.方法名调用.
返回值:Object binarySearch(Object[] a, Object key) 使用二分法查找法来查找指定的元素,没有则会返回(1(插入点)-1).
返回值:Object[] copyOfRange(旧数组,要复制的开始索引,新数组,索引,复制几个) 将指定的数组的指定返回复制到一个新的数组.
sort(Object[] o) 对指定的数组进行升序排序
返回值:String tostring(Object[] o) 返回指定数组内容的字符串表示形式.
Collections集合工具类:
用来对集合进行操作,是一个静态方法. 直接类名.方法名调用.
没有返回值 shuffle(List<?> list) 将集合中的顺序打乱.
没有返回值 sort(List<T> list) 传一个集合,对集合进行升序排序.