黑马程序员_泛型

---------------------- <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>、期待与您交流! ----------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值