文档章节

Java容器之List小结

小灰灰Blog
 小灰灰Blog
发布于 2017/09/07 20:21
字数 310
阅读 20
收藏 0

列表

List, ArrayList, LinkedList, ArrayCopyOnWriteList, Vector

简述

1. 列表划分为线程安全和线程非安全两类,其中:

线程安全: Vector, ArrayCopyWriteList

线程非安全:ArrayList, LinkedList

2. 底层存储

数组: ArrayList Vecotr ArrayCopyWriteList

链表:LinkedList

3. 使用场景

ArrayList

  • 底层为数组,适合随机访问
  • 动态插入删除可能涉及到数组长度重新分配

LinkedList

  • 底层为链表,适合频繁删除新增的场景
  • 随机访问不友好,需要遍历

Vector

  • 线程安全
  • 所有的方法都加锁,导致性能较差

CopyOnWriteArrayList

  • 线程安全
  • 读方法不加锁;修改方法加锁,一次只能一个线程访问
  • 修改时,会拷贝一份内容出来,对拷贝的结果进行操作,最后覆盖之前的内容

4. 特性

  • List 是有序的
  • ArrayList 默认空间大小为10
  • new ArrayList<>() 内部的数组实际上引用的是一个空数组
  • ArrayList 扩容规则
    • 增加原来空间大小的一半
    • 如果依然塞不下,则扩充到正好填充满的情况
  • 排序
    • Collections.sort(list, new Comparator(){xxx})
    • List的内容,实现了Comparater接口后,可以直接调用 Collections.sort(list);

© 著作权归作者所有

共有 人打赏支持
小灰灰Blog
粉丝 187
博文 190
码字总数 334310
作品 0
武汉
程序员
私信 提问
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
2018/06/21
0
0
Android编程之SparseArray详解

最近编程时,发现一个针对HashMap<Integer, E>的一个提示: 翻译过来就是:用SparseArray<E>来代替会有更好性能。 那我们就来看看源码中SparseArray到底做了哪些事情: 一、构造 从构造方法我...

天下杰论
2013/06/24
0
2
Spring Boot整合模板引擎jsp

jsp也算是一种模板引擎吧。整合jsp前,先说一下运行SpringBoot项目的几种方式 1. 运行SpringBoot项目的几种方式 1.1 使用内嵌Tomcat运行项目 在IDE中右键运行启动类,也就是直接直接运行App...

yysue
2018/06/15
0
0
容器中 Java 应用程序的内存和 CPU 如何分配?看这一篇就够了!

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五,与您不见不散! 随着2018年的结束,我们将回顾排名前五的最受读者欢迎的文章。今天分享的第一篇文章,将帮助那些在容器中运行...

docker公司
01/04
0
0
带你了解源码中的 ThreadLocal

这次想来讲讲 ThreadLocal 这个很神奇的东西,最开始接触到这个是看了主席的《开发艺术探索》,后来是在研究 ViewRootImpl 中又碰到一次,而且还发现 Android 中一个小彩蛋,就越发觉得这个东...

请叫我大苏
2018/07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
1
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
1
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
昨天
7
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部