java面试题(集合框架)

本文深入解析Java集合框架,包括Collection和Map接口,及其主要实现类如ArrayList、LinkedList、HashSet、HashMap等。阐述了各种集合类的特点和适用场景,如ArrayList的快速随机访问,LinkedList的高效插入删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:CollectionMap,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。Map是一种键和值的映射关系(双列集合) ,Collection中存储了一组对象。

Collection接口

Collection接口有两个主要的子接口List和Set;Set表示不允许有重复元素的集合,List表示允许有重复元素的集合

List接口又有两个常用的实现类ArrayList和LinkedList;

ArrayList数组线性表的特点为:类似数组的形式进行存储,因此它的随机访问速度极快;不适合于在线性表中间需要频繁进行插入和删除操作。因为每次插入和删除都需要移动数组中的元素。

注意: a、如果在初始化ArrayList的时候没有指定初始化长度的话,默认的长度为10。

            b、ArrayList扩容ensureCapacity的方案为“原始容量*3/2+1"。

            c、ArrayList是线程不安全的,在多线程的情况下不要使用。

            d、ArrayList实现遍历的几种方法:第一种使用foreach遍历List,第二种把链表变为数组相关的内容进行遍历,第三种 使用迭代器进行相关遍历。

LinkedList的链式线性表的特点为: 适合于在链表中间需要频繁进行插入和删除操作。随机访问速度较慢。查找一个元素需要从头开始一个一个的找。

Set接口的常见实现类有HashSet,LinedHashSet和TreeSet这三个;

HashSet的底层就是基于HashMap来实现的,HashSet中时允许出入null值的,但是在HashSet中仅仅能够存入一个null值。HashSet中存储元素的位置是固定的。

Map接口

常见实现类HashMap、TreeMap、LinkedHashMap、Properties(继承HashTable)以及老版本的HashTable

Hashtable是线程安全的,而HashMap是非线程安全的,我们可以使用外部同步的方法解决这个问题。

 Array和List的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值