Java 集合类

文章介绍了Java中的集合框架,包括List、Set和Map接口及其常见实现类。List允许元素重复并按插入顺序排列,有ArrayList和LinkedList两种实现,前者适合随机访问,后者适合频繁插入删除。Set接口的实现如HashSet和TreeSet,TreeSet按排序顺序管理元素。Map接口用于键值对映射,HashMap提供快速查找,而TreeMap保证映射关系的有序性。
摘要由CSDN通过智能技术生成


集合类又被叫做容器,其与数组有些相似,不同之处在于数组是定长的,而集合是变长的;数组用来存放基本类型的数据,集合用来存放对象的引用。常用的集合有List、Set和Map。

List和Set继承了Collection接口。上述集合类的继承关系如下:
在这里插入图片描述
Collection接口提供了添加元素、删除元素、管理数据的方法,因此这些方法对List和Set是通用的

方法功能
add(E, e)将指定对象添加到集合中
remove(Object o)将指定对象从该集合中移除
isEmpty()返回布尔,判断当前集合是否为空
iterator()返回迭代器,用于遍历集合中的对象
size()返回集合中的元素个数

List集合

List集合允许元素重复,顺序为对象插入的顺序,可通过索引访问集合中的元素

List接口

List接口继承了Collection接口,因此包含Collection中的所有方法,此外,List接口还定义了两个重要方法

get(int index)    获取指定位置的元素
set(int index, Object obj)    将指定位置的元素修改为指定的对象

List接口的实现类

List接口的常用实现类有ArrayListLinkedList
ArrayList:实现了可变的数组,允许保存所有元素(包括null),可根据索引进行随机访问。缺点是向指定位置插入或删除对象速度慢
LinkedList:采用链表结构存储对象,优点是插入删除效率高,但随机访问效率低

声明语法
List<E> list = new ArrayList<>();    E为合法Java数据类型
List<E> list = new LinkedList<>();

Set集合

Set集合中的对象无需且不重复,Set集合也继承了Collection接口,因此包含Collection中的所有方法

Set接口的实现类有HashSet类与TreeSet类

HashSet:由哈希表(实为一个HashMap实例)支持,允许使用null元素
TreeSet:它实现了Set接口和java.util.SortedSet接口,因此TreeSet类实现的Set集合在遍历时按照顺序排序

TreeSet类新增的方法如下

first()    返回Set中第一个元素
last()    返回Set中最后一个元素
comparator()    返回Set中元素的排序顺序
headSet(E toElement)    返回新Set,其中是toElement元素(不包含)之前的所有元素
tailSet(E fromElement)    返回新Set,其中是fromElement元素(包含)之后的所有元素
subSet(E fromElement, E fromElement)    截取两个元素之间的所有元素(前闭后开)作为新Set返回

Map集合

Map接口提供了将key映射到value的接口,key和value一一对应
Map接口提供了一些常用方法

put(K key, V value)    向集合中添加指定的key:value
containsKey(Object key)    若包含key,返回true
containsValue(Object value)    若中有key映射到指定value,返回true
get(Object key)    若存在key,则返回对应的value
keySet()    返回该集合中的所有key
values()    返回该集合中的所有value形成的Collection集合

Map接口的常用实现类有HashMapTreeMap,建议用HashMap实现Map集合,效率更高

HashMap:基于哈希表的Map接口实现,允许使用null值和null键,但键要唯一。HashMap通过哈希表对其内部的映射关系进行快速查找。映射的顺序不确定
TreeMap:实现了Map接口和java.util.SortedSet接口,因此集合中的映射关系具有一定顺序。但在添加删除和定位映射关系时,TreeMap比HashMap性能稍差。由于有序,所以不允许键是null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值