集合类

    xiaoxiao2021-03-25  164

    一.背景介绍:

    1.为什么会出现集合类?

    为了方便对多个对象进行操作,就对对象进行存储,简而言之,集合就是存储对象常用的一种方式。

    2.数组和集合类同是容器有何不同?

    数组既可以存储基本数据类型,也可以用于存储对象,但是其长度是固定的;而集合只能用来存储对象且可以存储不同类型的对象,长度也是可变的。

    二.集合类关系图:

    三.集合框架中的常用接口

    Collection接口中有两个子接口:List(列表)以及Set(集)

    List:可以存放重复元素,元素的存取是有序的(因为该集合体系中有索引结构)。

    Set:不可以存放重复元素,元素的存取是无序的。

    1.List接口中常用类

    ArrayList:线程不安全,不同步,查询速度快,底层数据结构是数组。

    LinkedList:增删速度快,底层数据结构是链表。

    Vetor:线程安全,但速度慢,已经被ArrayList替代,底层数据结构同样是数组。

    取List中元素的方式:

    get(int index): 通过脚标获取元素。

    iterator():通过迭代获取迭代器对象。

    比如:Iterator it = l.iterator();

               while(it.hasNxet()){

    System.out.println(it.next());//注意:next()方法返回值为Object类型

              }

    2.Set接口中常用的类

    HashSet:线程不安全,存取速度快,通过equals()以及hashCode()方法来保证数据元素的唯一性。底层数据结构是哈希表。

    TreeSet:线程不安全,可以对集合中的元素进行排序,主要通过复写compareTo()或者compare()方法来保证数据元素的唯一性,底层数据结构是二叉树结构。

    备注:在此标注一下泛型的出现与使用。

    JDK1.5以后开始出现,第一,提高了程序的安全性;第二,将运行期的问题转换到了编译期;第三,省去了类型转换的麻烦;第四,优化了程序设计。

    3.Map集合中常用类

    Hashtable:线程安全,速度慢,不允许存放null键值,已经被HashMap取代。

    HashMap:线程不安全,速度慢,允许存放null键值。

    TreeMap:对键进行排序,排序原理与TreeSet类似。

    4.集合框架中常用工具类

    Collections:常用的有:其一,对集合进行查找;其二,取集合中的最值;第三,对List集合进行排序

    Arrays:常用的有:其一,将数组转化为List集合;其二,对数组进行排序;其三,对数组进行二分查找

    转载请注明原文地址: https://ju.6miu.com/read-4168.html

    最新回复(0)