zoukankan      html  css  js  c++  java
  • 集合框架小结

    一.框架

    1.最大的接口Collection、Map、Iterator、Enumeration

    2.Collection:存放单值

       |- List:允许有重复内容,有序

           |- ArrayList:异步处理,新的操作类,非线程安全

           |- Vector:底层是数组数据结构。线程同步安全。因为效率低被ArrayList替代了。支持Enumeration输出

       |- Set:不允许有重复内容,无序,靠hashCoke()和equals()进行重复的严重

           |- HashSet:无序存放,底层数据结构是哈希表。是线程不安全。不同步。

    |- LinkedHashSet类根据元素的哈希码进行存放,同时用链表记录元素加入的顺序。通过链表来存储对象,一般插入和删除效率较高,检索效率相对较低。

           |- TreeSet:有序存放,使用红黑树结构对加入的元素进行排序存放,通过TreeSet构造方法来获取TreeSet对象。

    3.Map:存放键值对

       |- HashMap:新的类,异步处理,非线程安全,允许有null

       |- Hashtable:旧的类,同步处理,线程安全,不允许有null

            |- Properties:属性操作类

       |- TreeMap:有序排列,按key排序,根据Comparable指定排序规则

    4.Iterator:

       |- 迭代输出,依靠Collection接口中的iterator方法输出,是新的输出标准

    5.Enumeration:旧的输出标准

    、泛型

    应用背景:存入容器的对象在取出时需要强制转换类型,因为对象加入容器时都被转化为Object类型,而取出时又要转成实际类型。

    Java中向下类型转换时容易出现ClassCastException的异常,这时应当尽量避免。有什么办法可以让装入容器中的数据保存自己的类型而不被转化为Object对象呢,这就需要用到JDK5.0支持的新功能——Java的泛型。

    定义:泛型只是编译时的概念,是供编译器进行语法检查用的。所谓泛型,就是在定义(类型的定义,方法的定义,形式参数的定义,成员变量的定义等等)的时候,指定它为通用类型,也就是数据类型可以是任意的类型,如List<?> list = null,具体调用时,要将通用类型转换成指定的类型。泛型提高了大型程序的类型安全和可维护性。

    目的:努力将运行时异常转换成编译时的问题,减少运行时异常数量(提高了编译器的能力)。

    • 解决模版编程的问题。

     

  • 相关阅读:
    java实现快速排序
    java实现简单回文算法
    HTML条件注释
    LeetCode 将有序数组转换为二叉搜索树
    LeetCode 有效的数独
    Leetcode 买卖股票的最佳时机 II
    模拟登陆163邮箱
    oracle 视图的相关操作
    oracle 约束类别
    软件测试用例知识点梳理
  • 原文地址:https://www.cnblogs.com/javaxiaodoufu/p/6675566.html
Copyright © 2011-2022 走看看