A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Nrnnr110 中级黑马   /  2016-6-22 23:52  /  248 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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  代表在比较器中对数据进行比较,既可以比较它的本类型,也可以比较它的子类型

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马