1-24List三个子类的特点
2024-09-07 18:20:10
List的三个子类的特点
因为三个类都实现了List接口,所以里面的方法都差不多,那这三个类都有什么特点呢?
ArrayList:
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
Vector相对ArrayList查询慢(线程安全的)
Vector相对LinkedList增删慢(数组结构)
LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
这个三个子类有什么区别和共同点?
Vector和ArrayList的区别
Vector是线程安全的,效率低
ArrayList是线程不安全的,效率高
共同点:都是数组实现的
ArrayList和LinkedList的区别
ArrayList底层是数组结果,查询和修改快
LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
共同点:都是线程不安全的
在开发中使用哪个?
查询多用ArrayList
增删多用LinkedList
如果都多ArrayList
Vector基本上不再使用了,效率比较较低。
ArrayList线程安全的方案
如果使用ArrayList去替代Vector的话,需要考虑线程安全的问题,有两种方案:
可以使用Collections工具类中的synchronizedList方法可以将ArrayList变成线程安全的
List list = Collections.synchronizedList(new ArrayList());
使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList一样
最新文章
- Unity3d中C#使用指针(Unsafe)的办法(转)
- 34-Ajax辅助方法
- linux 下文件的比较
- 旧版QT的名称:qt-win-commercial-4.4.3-vc60.exe
- C#和Java中执行SQL文件脚本的代码(非常有用)
- Strusts2--课程笔记5
- ubuntu vi编辑insert时上下左右建为ABCD
- 域名解析>;>;";记录类型"; 说明
- 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站
- 使用Owin的WebApi,并分离Controllers
- 公共的JS组件-告别CURD
- treesoft,couchDB,
- vfile.hpp
- php 安装最新的redis连接扩展
- 洛谷P4578 [FJOI2018]所罗门王的宝藏(dfs)
- python基础-----异常问题
- 虚拟机下 centos7 无法连接网络
- 【Java深入研究】6、CGLib动态代理机制详解
- Commons工具包的使用
- 导出类成员里含有stl对象
热门文章
- hihocoder #1122 二分图二•二分图最大匹配之匈牙利算法(*【模板】应用 )
- Codeforces Round #374 (Div. 2) C. Journey —— DP
- Java接口测试之使用有道翻译API
- python 实用pickle序列化
- Objective-C学习之解析XML
- 测试jdbc连接下,mysql和mycat的吞吐性能
- 记录一个读pcap数据包的软件:Fiddler
- 51Nod - 1295:XOR key (可持久化Trie求区间最大异或)
- SPOJcot2 Count on a tree II (树上莫队)
- vue-cli创建项目 一直downloading解决办法