论 ArrayList如何实现线程安全

一:使用synchronized关键字

二:使用Collections.synchronizedList();

        假如你创建的代码如下:List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();

        那么为了解决这个线程安全问题你可以这么使用Collections.synchronizedList(),如:

        List<Map<String,Object>> data=Collections.synchronizedList(new ArrayList<Map<String,Object>>());

       其他的都没变,使用的方法也几乎与ArrayList一样,大家可以参考下api文档;

额外说下 ArrayList与LinkedList;这两个都是接口List下的一个实现,用法都一样,但用的场所的有点不同,ArrayList适合于进行大量的随机访问的情况下使用,LinkedList适合在表中进行插入、删除时使用,二者都是非线程安全,解决方法同上(为了避免线程安全,以上采取的方法,特别是第二种,其实是非常损耗性能的)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐百川的学习频道

Java 8 新特性(二)流类库

前面介绍了lambda表达式,但是我们可以看到,lambda表达式其实也就是简化了一部分代码的编写,说起来也不算是非常有用的语言特性。但是如果lambda表达式...

1905
来自专栏Java技术分享

JavaBean与内省操作

JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。

18510
来自专栏Golang语言社区

Golang语言--【社区推荐阅读】 fmt用法

fmt 包中的函数和方法 // format.go -------------------------------------------------- /...

33611
来自专栏nnngu

数据结构06 队列

上一篇讲了栈,这一篇要讲的是我们常用的队列,我会从以下几个方面进行总结。 1、什么是队列  2、队列的存储结构 3、队列的常用操作及实现代码 1、什么是队列  ...

2618
来自专栏搜云库

《深入理解Java虚拟机》(二)java虚拟机运行时数据区

Java虚拟机运行时数据区 详解 2.1 概述 本文参考的是周志明的 《深入理解Java虚拟机》,为了整理思路,简单记录一下,方便后期查阅。 2.2 运行时数据...

2506
来自专栏微信公众号:Java团长

2017年Java面试题整理

面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2017年面试题,让大家在找工作时候能够事半功倍。

722
来自专栏Spark学习技巧

JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介

843
来自专栏我是业余自学C/C++的

队列

队列和栈一样,是一种特殊的线性表。跟栈不同的是,队列的插入和删除分别在线性表的两端进行,因此,队列是一个先进先出(FIFO)的线性表。插入元素的一端叫队尾(ba...

541
来自专栏我的小碗汤

这个问题你能答对吗?

首先,还是给大家说声抱歉,由于微信限制,前两天抽奖的好友请求还没有全部通过验证,这两天都会通过并拉大家进抽奖群的,还请大家海涵。

632
来自专栏个人随笔

论 ArrayList如何实现线程安全

假如你创建的代码如下:List<Map<String,Object>> data=new ArrayList<Map<String,Object...

41912

扫码关注云+社区