javaSE集合以及相关面试题概述

9 篇文章 0 订阅
1 篇文章 0 订阅

因为最近也要准备去实习了,所以顺带复习了一些java基础知识,希望对大家有帮助。
本文只是集合的概述,介绍集合之间的关系,以及各种集合的异同,不会深入介绍具体的实现

1. java集合概述

集合,说白了就是存放数据的,话不多说,先上图。

在这里插入图片描述在图中,可以看到Collection有两个子接口,ListSet,其中List集合主要实现类有ArrayList,LinkedList和Vector.它是有序的

  1. List的特点是能够以线性的方式储蓄对象,并且允许存放重复对象,List能用Collection类的静态方法sort()排序。
  2. Set集合主要实现类有HashSet和TreeSet,存放对象的引用,不允许有重复对象,它是无序的。
  3. Map集合,其主要实现类有HashMap,TreeMap。Map对值没有唯一性要求,但是要求键是唯一的,如果假如已有的键,原有的值会被覆盖,HashMap类按照哈希算法来存取键对象,可以重载equals(),hashCode()方法来比较键,但是两者必须一致,TreeMap可以自然排序,也可以传递Comparator的实现类构造TreeMap.

2.介绍完了,上题

  1. 集合有哪几种主要的接口,简单介绍一下

1、Collection:代表一组对象,每一个对象都是它的子元素。
2、Set:不包含重复元素的Collection
3、List:有顺序的Collection,并且可以包含重复元素
4、Map:可以把键(key)映射到值(Value)的对象,键不能重复

2.ArrayList和LinkedList的区别

  1. ArrayList的实现是基于数组来实现的,LinkedList的基于双向链表来实现。这两个数据结构的逻辑关系是不一样,当然物理存储的方式也会是不一样。
  2. 对于查询和修改,ArrayList优于LinkedList。
  3. 对于插入和删除操作,LinkedList优于ArrayList
  4. LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。

3.ArrayList和Vector的区别

1.同步性: Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。
2.数据增长:Vector默认增长为原来两倍,而ArrayList的增长策略在文档中没有明确规定(从源代码看到的是增长为原来的1.5倍)

HashMap与HashTable有什么区别?

1.HashTable的方法是同步的,HashMap不同步
2.HashTable不允许空值key和value都不可以,HashTable允许空值,key和value都可以
3.HashTable使用Enumeration,HashMap使用Iterator.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值