社区
C#
帖子详情
关于ArrayList的问题
zhuyj441
2003-04-18 02:17:56
是否提倡使用ArrayList?
使用ArrayList来存储PointF的对象数组,在效率上和自己编写的数组有多少的区别?
ArrayList al=new ArrayList();这个语句在是怎样分配内存的?
...全文
65
4
打赏
收藏
关于ArrayList的问题
是否提倡使用ArrayList? 使用ArrayList来存储PointF的对象数组,在效率上和自己编写的数组有多少的区别? ArrayList al=new ArrayList();这个语句在是怎样分配内存的?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liduke
2003-04-19
打赏
举报
回复
同意二楼的意见,主要是根据你的实际情况来决定是用数组还是用列表
unfor
2003-04-19
打赏
举报
回复
同意楼上的方案
timmy3310
2003-04-19
打赏
举报
回复
是否提倡使用ArrayList?
这要看你的应用,如果能够直接用数组,那么就不用,如果不能,就用。
使用ArrayList来存储PointF的对象数组,在效率上和自己编写的数组有多少的区别?
ArrayList al=new ArrayList();这个语句在是怎样分配内存的?
ArrayList内部封装了一个object数组,初始化如果不指定长度,会以一个默认长度构造(目前是16),然后它会维护一个当前的对象数量,如果执行Add方法的时候超过了长度,那么它会将该数组的长度翻倍,所以使用前估算Capacity是提高ArrayList效率的重要手段。
另外,特定类型的数组比ArrayList有更高的效率,因为ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱的操作。
另外,可以通过调用 TrimToSize 或通过显式设置 Capacity 属性来减少容量。
salonwang
2003-04-18
打赏
举报
回复
是
低
不分配
ArrayList
为什么会出现并发
问题
以及相应的解决办法
问题
一:
ArrayList
为什么会出现并发
问题
?
ArrayList
是线程不安全的,在多线程并发访问的时候可能会出现
问题
,如果想使用线程安全的集合类,java自带有vector,也就是说vector是线程安全的。但是arayList的底层是数组实现的,而且可以自动扩容,获得元素或者在数组尾段插入元素的效率高,所以说
ArrayList
有其独特的优势。 1.扩容实现 private tra...
ArrayList
并发
问题
分析
并发
问题
老是感觉很棘手,这次碰到了一个
ArrayList
在线程池中add出现null数据的
问题
,虽然之前就知道
ArrayList
是非线程安全的,但是具体为啥不安全,为啥会出现空值,没有深入去理解,这次出现这个
问题
,经过自己分析,基本知道了这类
问题
出错会出在哪儿,对于这类
问题
的分析有点谱了1.
问题
描述:for循环线程池中启10个任务进行list.add(),加完后,发现第一个值为空,而且list的s...
ArrayList
线程安全
问题
前言 在观看多线程书籍的时候,经常会看到大家提及
ArrayList
与HashMap时候.皆会说明,
ArrayList
与HashMap类型都不是线程安全的. 那么,在传统的集合包内的集合类到底为什么线程非安全呢?在新的JUC包类又有什么可以替代呢? 让我们开始今天的部分. 本章主要包括如下几个部分: 为什么
ArrayList
是线程非安全的? 替代措施(Vector类 / Colletions封装...
ArrayList
中多线程的不安全
问题
方案二:List list = Collections.synchronizedList(new
ArrayList
<>());写入时复制,就是在写入时,先将原数据复制,再将需要的数据插入,最后返回给原数组。多个线程同时去添加ArryList,出现了报错,抛出来异常。方案一:List list = new Vector();为什么可以这样输出,是一种函数是接口,我们先过个耳熟。因为synchronized是不高效的行为。
ArrayList
.add方法是不安全的。该方法使用了Lock锁,所以是安全的。
关于
ArrayList
的一些
问题
问题
1:多次扩容。如果数组大小不够,系统会为当前个数进行int newCapacity= (oldCapacity* 3)/2 + 1,也就是1.5倍扩容。 例如我们要为数组动态增加100个元素,以默认10个元素大小创建的
ArrayList
中,将会经过10,16,25,38,58,88,133共6次递增扩容才会满足最终的要求。 每次扩容,系统会重新拷贝一遍已经加入到
ArrayList
的数据。如果可...
C#
111,128
社区成员
642,534
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章