------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a
href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
1、Map集合特点和Collection区别
1. Map集合特点
A:映射键值对集合
B:存储对象的时候,存储1个键,存储1个值
C:一个集合中,键必须唯一,1个键只能对应1个值
2. Map和Collection区别
A:Collection每次存储1个对象
B:Map每次存储2个对象
2、Map接口中的抽象方法
使用Map接口的实现类对象,HashMap
1. put 将键值对存储到集合中
V put(键的对象,值的对象)
2. remove(Object obj)
传递键,删除整个键值对
V remove(Object obj) 返回被移除之前的值
3. containsKey,containsValue
boolean containsKey(Object o)判断集合中有没有这个键,如果有返回true
boolean containsValue(Object o)判断集合中有没有这个值,如果有返回true
4. get
根据键,获取值
V get(K), 传递键,返回这个键对应的值
如果集合中,没有这个键,返回null
5. values
将Map集合中的值,存储到一个Collection集合中
方法返回值是Collection<V>values()
3、Map集合迭代遍历
1. KeySet方式
Map接口方法 Set keySet()将Map集合中的所有键,存储到Set集合
步骤:
A:Map集合方法keySet(),将所有键存储到Set集合
B:迭代Set集合(Iterator)
C:获取出Set集合中的元素(就是Map中的键)
D:Map集合方法get,通过键获取值
2. entrySet方式
Map接口方法 entrySet()将Map集合中的键值对的
映射关系对象存储到Set集合
映射关系: Map接口中的内部接口Entry Map.Entry (描述键值对映射关系,结婚证)
Set<Map.Entry<键,值>>
步骤:
A:Map集合方法entrySet()将键值对映射关系对象Map.Entry,存到Set集合
B:迭代Set集合(Iterator)
C:获取出Set集合中的元素
D:迭代出来的是什么,是键值对映射关系对象Map.Entry
E:使用键值对映射关系对象Map.Entry接口方法 getKey getValue获取键值对
4.HashMap集合
1. HashMap自身特性
A:底层数据结构是哈希表
B:存取速度快
C:作为键的对象,必须实现hashCode和equals
D:线程不安全集合,运行速度快
E:允许存null值,null键
2. HashMap练习题
键是自定义对象,值是字符串
两张方式获取程序Demo:
5.LinkedHashMap集合
1. LinkedHashMap自身特性
A:继承 HashMap
B:底层是基于链表的哈希表实现
C:具有可预知的迭代顺序,怎么存储怎么获取
D:作为键的对象,必须实现hashCode和equals
E:线程不安全集合,运行速度快
F:允许存null值,null键
G:存取速度快
程序Demo:
6.TreeMap集合
1. TreeMap集合自身特性
A:底层数据红黑树结构
B:对存储的键进行排序
C:对象的自然顺序
D:比较器对象
E:线程不安全集合,运行速度快
7.Hashtable集合
1. Hashtable集合自身特性
A:底层哈希表结构
B:作为键的对象,必须实现hashCode和equals
C:线程安全集合,运行速度慢
D:不允许存储null值,null键
开始于JDK1.0版本,从1.2开始,改进为实现Map接口
被更先进的HashMap取代
2. Properties 集合
A:继承Hashtable
B:也是哈希表结构
C:线程安全集合,运行速度慢
这个集合,可以和IO流对象,结合使用,实现数据的持久性存储
Properites 集合对象,没有定义泛型,我们在使用中,也不能写泛型
键值对的数据类型,固定为String类型
Properites集合方法,4个
setProperty(String key,String value)
将键值对存储到集合中,内部使用的是Hashtable的方法put
String getProperty(String key)
通过键获取值,等同于Map中的get方法
8、map集合练习
计算出在一个字符串中,每个字母的出现次数
abcdtgefw
结果:a(3)b(5)c(2)
分析:a=3 b=5c=2键值对,Map集合才能实现功能
TreeMap集合,存储键值对,字母是键,出现次数是值
程序Demo:
9.Collections工具类
java.util.Collections类,专门对集合进行操作
方法,全静态,直接类名调用
1. static void sort
方法针对List集合进行排序, 不对Set,Map排序 Tree
sort(List list) 按照集合中的对象的自然顺序排序
如果对象,没有自然顺必须,直接编译失败
2. static void sort
sort方法的重载形式,方法名一样,参数列表不同
sort(Comparator c)传递一个比较器对象,
将根据比较器对象进行排序,不依赖对象自然顺序
3. static Comparator reverseOrder()
返回新的比较器对象,逆转对象的自然顺序
需要和sort配合使用
4. static Comparator reverseOrder()
reverseOrder()方法的重载形式,参数 Comparator类型参数
传递一个比较器,返回一个新的比较器,新的比较器,逆转传递比较器的顺序
Comparator reverseOrder(Comparator c)返回新的比较器
5. static int binarySearch(List list,Object o)
对List集合,进行二分查找,折半查找
传递List集合,传递被查找的关键字,返回关键字所在的索引
集合有序排列
6. static void reverse()
对List集合翻转 (和数组翻转一回事)
reverse(List list)
7. static void shuffle()
对List集合中的元素,随机排列
shuffle(List list) 洗牌
8. 一组方法
特点:方法名字都是以synchronized开头 ,同步
将线程不全集合,变成线程安全集合,一般不用