集合类

来源:互联网 发布:淘宝店铺开通花呗 编辑:程序博客网 时间:2024/05/16 10:34

一.背景介绍:

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集合;其二,对数组进行排序;其三,对数组进行二分查找


1 0
原创粉丝点击