JavaSE面试题---集合Collection

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

1、Collection:equals()方法。
2、List:equals()方法
3、Set:

  • (HashSet、LinkedHashSet为例):equals()方法、hashCode()方法
  • (TressSet为例):Comparable:compareTo(Object obj)方法
    Comparator:compare(Object o1,Object o2)方法

2、ArrayList、LinkedList、Vector三者的相同点与不同点?

相同点:三者都是List接口的实现类。

  • ArrayList和Vector:
    ArrayList是List接口主要的实现类,使用较多;线程不安全;效率高;底层是数组;扩容事是1.5倍。
    Vector是List接口古老的实现类;线程安全的;效率低;底层是数组;扩容时是2倍。
  • ArrayList和LinkedList:
    ArrayList底层是数组,有下标,查找某个元素可以直接通过下标找到对应位置元素,时间复杂度是o(1);删除元素时间复杂度为o(n);
    LinkedList查找某个元素时事件复杂度是o(n);删除一个元素时间复杂度为o(1);

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

  • 增:add(Object obj)
  • 删:remove(Object obj)/remove(int index)
  • 改:set(int index,Object obj)
  • 插:add(int index,Object obj)
  • 长度:size()
  • 遍历:Iterator、foreach、普通的for循环

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

HashSet、LinkedHashSet、TreeSet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值