黑马程序员技术交流社区

标题: 黑马程序员_java集合和泛型 [打印本页]

作者: 838814131    时间: 2015-8-29 22:59
标题: 黑马程序员_java集合和泛型
------- android培训、java培训、期待与您交流! ----------

###一.集合的分类
* 1.Collection
      * List: 可重复, 有存储顺序(有索引),存和取有序
        * ArrayList    数组实现, 增删慢, 查找快   
        * LinkedList    链表实现, 增删快, 查找慢
        * Vector        数组实现, 原理和ArrayList相同, 但线程安全
    * Set
        * HashSet
            * LinkedHashSet
        * TreeSet
            
* 2.Map
    * HashMap
        * LinkedHashMap
    * TreeMap
    * Hashtable
   
###二.List的三个儿子(掌握)
* (1)List的三个儿子特点:
    * List
        * ArrayList
            * 底层数据结构是数组,查询和修改快,增删慢
            * 线程不安全,效率高
        * Vector
            * 底层数据结构是数组,查询慢(相对应ArrayList),增删慢(相对应LinkedList)
            * 线程安全,效率低
        * LinkedList
            * 底层数据结构是链表,查询和修改慢,增删快
            * 线程不安全,效率高
* (2)ArrayList(存储字符串和自定义对象)
* (3)Vector(存储字符串和自定义对象)
    * 有自己的特殊功能(方法)。
    * 但是不用,被新功能给替代了。
* (4)LinkedList(存储字符串和自定义对象)
    * 有自己的特殊功能。可以很方便的操作头和尾。
* (5)案例:
    * A:ArrayList存储字符串并去除重复值
    * B:ArrayList存储自定义对象并去除重复值
        * 需求:我们认为同姓名和同年龄的人即为同一个人。
    * C:用LinkedList模拟栈数据结构

###三.泛型(理解)
* (1)泛型是一种把明确类型放在了创建对象或者调用方法时候才去明确的特殊的类型。
* (2)格式:
    * <数据类型>引用数据类型
* (3)好处:
    * A:解决了黄色警告线问题
    * B:把运行期间的转换异常给提前到了编译期间
    * C:优化了程序设计,不需要做强制类型转换了
* (4)泛型的前世今生
    * A:泛型类
    * B:泛型方法
    * C:泛型接口
* (5)泛型的使用:(掌握)
    * 看API中的类或者接口,其后是否跟有<>,如果有,就是泛型的应用。
    * 一般在集合中用。
作者: 阮文江    时间: 2015-8-29 23:03
泛型有点不好理解,我老是弄乱!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2