01_集合框架(Map集合概述和特点).
Map 优点: 元素都是以键值对儿,形式存在的,
键必须唯一,值可以重复
Map 集合中的算法都是针对键有效的
key 代表键
value 代表值
Map接口和Collection接口有什么不同?
Map 集合是一个双列集合,它里面的元素都是以键值对儿形式出现的,键唯一,值可重复,可以看做一个幸福的集合
Collection 它是一个单列集合,它里面的子接口List元素是可以重复的
另一个 儿子 Set 里面元素是唯一的. 他们是一个孤单集合
-------------------------------------------------------------------------------------------------------------------------------
02_集合框架(Map集合的功能概述).
A:增加功能。
V put(K key, V value)
向集合中添加元素
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()
获取键值对儿对象的集合
Object get( Object key )
根据键获取值
Set<K> keySet():
获取键的Set集合
Collection<V> values()
E:长度功能。
int size()
获取集合长度
-------------------------------------------------------------------------------------------------------------------------------
03_集合框架(Map集合的遍历之键找值).
集合第一种遍历方式:丈夫找妻子
1 先把所有的丈夫集结起来 Set<> keySet()
2 通过增强for 把所有的丈夫获取到
3 让丈夫去找妻子 get(Object key)
-------------------------------------------------------------------------------------------------------------------------------
04_集合框架(Map集合的遍历之键值对对象找键和值).
遍历Map集合的第二种方式:通过结婚证找丈夫和妻子
1 获取到结婚证 entrySet()
2 通过增强for 获取到每一个结婚证
3 通过结婚证的getKey()获取丈夫 ,通过getValue()获取每一个妻子
-------------------------------------------------------------------------------------------------------------------------------
04_Map集合的遍历之键值对对象找键和值源码分析.
-------------------------------------------------------------------------------------------------------------------------------
05_HashMap集合键是Student值是String的案例.
用HashMap集合储存元素,使用自定义对象当做键
为什么要重写hashCode()和equals()方法?
因为如果自定义对象当做键的话,那么必须保证元素的唯一性,
我们通过观察发现HashMap底层也是哈希结构
所以需要重写这两个方法.
-------------------------------------------------------------------------------------------------------------------------------
06_集合框架(LinkedHashMap的概述和使用).
它底层是链表结构,可以保证怎么存就怎么取.
-------------------------------------------------------------------------------------------------------------------------------
07_TreeMap集合键是Student值是String的案例.
注意:如果一个自定义对象做键,用TreeMap集合的话,就必须实现排序
实现排序方式一:
让自定义对象所属类去实现Comparable接口并重写compareTo()方法
实现排序方式二:用TreeMap的带参构造,接收Comparator接口子类对象
-------------------------------------------------------------------------------------------------------------------------------
08_集合框架(统计字符串中每个字符出现的次数).
-------------------------------------------------------------------------------------------------------------------------------
09_集合框架(集合嵌套之HashMap嵌套HashMap).
-------------------------------------------------------------------------------------------------------------------------------
10_集合框架(HashMap和Hashtable的区别).
Hashtable 线程安全,效率低,JDK1.0出现,不允许null键和值
HashMap 线程不安全,效率高,JDK1.2出现,允许null键和值.
-------------------------------------------------------------------------------------------------------------------------------
11_集合框架(Collections工具类的概述和常见方法讲解).
public static void sort ( List list )
排序
public static <T> int binarySearch( List list, T key )
二分查找
public static void reverse( List list )
反转
public static T max( Collection coll )
最大值
public static void shuffle( List list )
随机置换
12_集合框架(泛型固定下边界).
addAll(Collection<? extends E> c)
向集合中添加数据
? extends E 代表既可以向集合中添加本类型(E),也可以添加它的子类型
public TreeMap(Comparator<? super K> comparator)
? super K 代表在比较器中对数据进行比较,既可以比较它的本类型,也可以比较它的子类型
|
|