集合常见问题总结

本文围绕Java集合框架展开,解答了集合存储自定义类对象时需重写的方法,对比了ArrayList、LinkedList、Vector的异同,介绍了List接口常用方法及遍历方式,还阐述了Set存储数据的特点和常见实现类的特性,为Java面试提供参考。

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

1.集合Collection中存储的如果是自定义类的对象,需要自定义类重写哪个方法?为什么?

List:
equals()方法;
Set:
(HashSet、LinkedHashSet为列):equals()、hashCode();

(TreeSet为例:)Comparable:CompareTo(Object obj);
Comparator: compare(Object o1 , Object o2)

2.ArrayList,LinkedList,Vector三者的相同点与不同点?【面试题】

相同: 都是List接口的实现类 都是用来存储数据的,都是有序,可重复的

不同:ArrayList:底层使用的是数组,线程不安全的,运行效率高
LinkedList:底层使用的是链表,
Vector:和ArrayList相似也是用数组存储的,线程安全的但是运行效率较低
List Map Set 相比较Set使用的比较少 List替代原来的数组

3. List接口的常用方法有哪些?(增、删、改、查、插、长度、遍历)

add(Object obj);
remove(int index);/remove(Object obj);
set(int index , Object obj;
get(int index);
add(int index, Object obj);
size();

使用iterator迭代器 遍历

使用foreach增强型for循环遍历

普通for循环

4.如何使用lterator和增强for循环遍历List。举例说明

//Iterator遍历
List list = new ArrayList();
list.add(123);
list.add(321);
list.add(122);
list.add(133);
Iterator iterator =  list.iterator();
while(iterator.hasNext()){
	System.out.println(iterator.next());
}
//增强型for循环遍历
for(Object obj : list){
	System.out.println(obj);
}

5. Set存储数据的特点是什么?常见的实现类有什么?说明一下彼此的特点。

特点:无序的,不可重复的
常见的实现类:HashSet-LinkedHashSet、TreeSet;
HashSet:数组和链表的结合体;
LinkedHashSet:有序的
TreeSet:向TreeSet中添加的数据,要求是相同类的对象。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值