---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
1. 自定义泛型类
提供程序的安全性
通过一个工厂,造对象,演示泛型的安全机制
2. 泛型方法
将泛型设定在方法上
如果在方法上定义了泛型,不跟随类泛型走,灵活性更高
静态 泛型,static修饰符的后面,非静态
3.泛型接口
如果你要实现别人的接口,带泛型的,实现类,实现全部的泛型
4.泛型的通配符
一个符号,表示所有的内容 ?
好处:任何类型都可以传递,进行迭代
弊端:不能进行强制类型转换
5.泛型的限定
员工和经理的案例
抽象类的时候
员工只有一个吗,经理也是唯一的吗
员工多个,经理多个,对象存储集合
泛型的限定
? extends E 传递E类型,或者是E的子类类型--泛型的上限限定
? super E 传递E类型,或者是E的父类类型 --泛型的下限定
6.Map集合
Map不属于Collection派系,独立一个派系
Collection和Map的存储机制不一样
Collection派系一次只存储一个对象
Map派系一次存储两个对象,一对对象
Map,将键,映射到值
Map<K,V>K 键的泛型,V值的泛型
映射-- 一个键,对应一个值
经纬度 东经100 北纬50 北京昌平
键不可以重复,值,可以重复
V put(K key, V value)存储对象
返回值,是一个值类型
当存储重复键的时候,返回值,返回被覆盖之前的值
V get(K)根据键,获取值
containsKey(K) 是否有这个键
containsValue(V) 是否有这个值
Cokllection values() 返回Map集合中,所有值的Collection集合
获取所有值
7. 取出Map集合的第一种方式
也是用迭代器
Map集合,将所有的键,存储成一个Set集合
迭代Set集合,获取到了键,通过Map集合中的get方法,获取值
Set<K> keySet()
8. 取出Map集合的第二种方式
双列集合,键值对,夫妻关系,通过结婚证,获取键和值
通过键值对的映射关系来获取
在Java中,万物皆对象,键值对的映射关系,也不封装成对象
这个对象的描述类,接口 interface Entry{}
Entry接口不是独立接口,内部接口
外部接口是Map接口
interface Map<K,V>{
static interface Entry{
}
}
Map派系中的所有子类
都有一个方法 entrySet()运行结果就是Entry类型
实现步骤:
entrySet方法获取到Map.Entry类型的对象
Set<Map.Entry<K,V>> entrySet()
以下步骤,迭代Set集合
9.HashMap
哈希表数据结构
线程不同步
并允许使用 null 值和 null 键。
put(null,null)
HashMap替代了Hashtable的使用
ArrayList替换了Vector
10. TreeMap
存储到TreeMap集合的对象--键,进行自然顺序的排序
TreeMap线程不安全的
底层数据结构是 Red-Black-Tree
11. 用户输入一个字符串
统计每个字符,出现了多少次
gh282gn3209
g出现了2次 g=2
h出现了1次
2出现了2次
12.Hashtable
线程安全
不允许存储null
13.Properties
是Hashtable的子类
线程安全的
也是双列集合
优势,可以和IO流技术,配合使用,实现数据的永久存储
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------