Java容器类

Java容器类

有很多,es:Collection,List,ArrayList,Vector,Map,Hashtable,HashMap等。

首先,我们来分类,容器类由Collection和Map两大部分组成,关系如下图 :
在这里插入图片描述

1. Collection接口

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements),元素之间有特定的规则,例如是否可重复,是否排序。它继承自Iterable:
在这里插入图片描述
Iterable接口有一个Iterator iterator(),而Collection继承Iterable来迭代。

Collection也是一个高度封装的集合接口,它提供了所有集合要实现的默认方法接口,我们看一下Collection接口关系类图,如下:
在这里插入图片描述
Collection : (由上可知) 它是List和Set的父接口,List在其上增加了“有序”,Set在其上增加了“唯一”特性。

1.1 List接口

实现它的类有LinkedList , ArrayList , Vector , Stack 等。
特点:
LinkedList , ArrayList ,存取的值是:有序,不唯一的(都不同步,线程不安全)。

LinkedList 类:
使用链表操作,允许null元素,增删改 效率比ArrayList 高。LinkedList 提供额外 的方法可在LinkedList 的首或尾操作,它也可用作堆栈(Stack),队列(queue) ,或双 向队列(queue) 。

ArrayList 类:
使用数组存取数据,线程不安全,(有序)所以查询效率高。
(当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量 以提高插入效率。)
Vector类:
Vector可实现类似动态数组的功能,性对于ArrayList,Vector是线程安全的,是支 持线程同步的,创建该对象后,可以往其中随意插入不同的类的对象,不需要顾及 对象类型也不需要先选定它的容量,并且查找方便。

1.2 Set接口

主要有HashSet,TreeSet等。
特点:唯一
HashSet : 无序(不保证有序),唯一,允许为空,最多只能有一个null元素。

TreeSet:是set的一种变体,可实现排序等功能的集合,在添加元素到集合中时,可按 照指定的某种规则插入到有序的对象序列中。

2. Map集合接口

存取数据通过key–>value的映射,不能包含两个相同的键(key),无序,但值(value)可相同(重复)。
Hashtable : 是Dictionary 的子类,缺省(默认)是线程同步的,(key,value) 关键字或值都不可以为空。
HashMap : 是Map接口的实现类,缺省情况下是不同步的。Key的值可以为null,但只可存在一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值