面试问到集合你能答上来多少?

本文深入探讨了Java集合框架中的核心组件:ArrayList、Vector和LinkedList的区别,重点讨论了它们的性能特点和线程安全性。ArrayList与Vector都是基于数组实现,但Vector是线程安全的。LinkedList采用双向列表实现,插入高效但随机访问慢。此外,还介绍了Map接口的子类HashMap和HashTable,分析了它们的区别和适用场景。
摘要由CSDN通过智能技术生成

一、Collection 接口继承体系。
这里写图片描述
二、ArrayList、Vector和LinkedList的区别。
1)ArrayList和Vector
**1.索引数据速度快。**两者都是基于object[ ] array来实现的,他们会在内存中开辟一段连续的空间,因此,支持用序号(下标,索引)访问元素。
**2.插入操作速度慢。**插入元素的时候需要移动容器中的元素,所以执行速度比较慢。ArrayList和Vector都有一个初始容量大小(大小为10),里面的元素超过容量的时候,就会自动扩容。为了提高效率,每次扩充容量的时候不是简单的扩充一个存储单元,而是扩充多个。Vector默认扩充为原来的两倍(每次扩充大小可以设置),而ArrayList会扩充为原来的1.5倍(没有提供设置空间的方法)。注意:public ArrayList():在Java7之前,和Java7开始不一样.在Java7之前,默认创建的是一个容量为10的数组. 底层: this(10);而从Java7开始,默认创建的是一个没有元素的空数组. 底层: new Object[]{};虽然,此时创建的是一个没有元素的空数组,当第一次使用add方法的时候,此时才设定初始容量为10。
**3.线程安全问题。**两者最大的区别就是(synchronization 同步)的使用,ArrayList没有一个方法是同步的,而Vector的绝大多数方法(add,insert,remove,set,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值