`
happy20070302
  • 浏览: 94836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ArrayList重要的方法和属性

    博客分类:
  • j2se
阅读更多
ArrayList重要的方法和属性
(1)构造器
    ArrayList提供了三个构造器:
public ArrayList();
默认的构造器,将会以默认(16)的大小来初始化内部的数组
public ArrayList(ICollection);
用一个ICollection对象来构造,并将该集合的元素添加到ArrayList
public ArrayList(int);
用指定的大小来初始化内部的数组

(2)IsSynchronized属性和ArrayList.Synchronized方法
    IsSynchronized属性指示当前的ArrayList实例是否支持线程同步,而ArrayList.Synchronized静态方法则会返回一个ArrayList的线程同步的封装。
    如果使用非线程同步的实例,那么在多线程访问的时候,需要自己手动调用lock来保持线程同步,例如:
ArrayList list = new ArrayList();
//...
lock( list.SyncRoot ) //当ArrayList为非线程包装的时候,SyncRoot属性其实就是它自己,但是为了满足ICollection的SyncRoot定义,这里还是使用SyncRoot来保持源代码的规范性
{
list.Add( “Add a Item” );
}

     如果使用ArrayList.Synchronized方法返回的实例,那么就不用考虑线程同步的问题,这个实例本身就是线程安全的,实际上ArrayList内部实现了一个保证线程同步的内部类,ArrayList.Synchronized返回的就是这个类的实例,它里面的每个属性都是用了lock关键字来保证线程同步。

****

但是,使用这个方法(ArrayList.Synchronized)并不能保证枚举的同步,例如,一个线程正在删除或添加集合项,而另一个线程同时进行枚举,这时枚举将会抛出异常。所以,在枚举的时候,你必须明确使用 SyncRoot 锁定这个集合。



Hashtable与ArrayList关于线程安全性的使用方法类似。

****

(3)Count属性和Capacity属性
    Count属性是目前ArrayList包含的元素的数量,这个属性是只读的。
Capacity属性是目前ArrayList能够包含的最大数量,可以手动的设置这个属性,但是当设置为小于Count值的时候会引发一个异常。

(4)Add、AddRange、Remove、RemoveAt、RemoveRange、Insert、InsertRange
    这几个方法比较类似
Add方法用于添加一个元素到当前列表的末尾
AddRange方法用于添加一批元素到当前列表的末尾
Remove方法用于删除一个元素,通过元素本身的引用来删除
RemoveAt方法用于删除一个元素,通过索引值来删除
RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动

    另外,还有几个类似的方法:
Clear方法用于清除现有所有的元素
Contains方法用来查找某个对象在不在列表之中

    其他的我就不一一累赘了,大家可以查看MSDN,上面讲的更仔细
(5)TrimSize方法
    这个方法用于将ArrayList固定到实际元素的大小,当动态数组元素确定不在添加的时候,可以调用这个方法来释放空余的内存。
(6)ToArray方法
    这个方法把ArrayList的元素Copy到一个新的数组中。
分享到:
评论

相关推荐

    arraylist用法

    什么是ArrayList? 如何使用ArrayList? ArrayList重要的方法和属性?

    ArrayList类别常用属性和方法[汇编].pdf

    ArrayList类别常用属性和方法[汇编].pdf

    ArrayList深度剖析与简单实用

    ArrayList深度剖析与简单实用、 ArrayList重要的方法和属性(1)...Count属性和Capacity属性 4、ArrayList与数组转换 Array的复杂版本 ArrayList常用方法 ArrayList同步机制 ArrayList内存节省方法 ArrayList使用建议

    C#中Array与ArrayList用法及转换的方法

    如果更改了 ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制。  ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。  使用 Synchronized 方法...

    去除arraylist容器中的相同的对象元素的方法

    下面小编就为大家带来一篇去除arraylist容器中的相同的对象元素的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    ArrayList删除集合中某一属性相同的元素方法(推荐)

    下面小编就为大家带来一篇ArrayList删除集合中某一属性相同的元素方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Struct.js:一种使用javascript使用ArrayList数据结构的简单方法

    简单的文档页面,显示实际的私有/公共方法和属性。 现在您可以阅读[api docs](API Docs.md) 代码识别。 遵循日常 代码重构。 查看最新 要做的事情: 。 一种覆盖方法并保留对基础方法的引用的简便方法。 想写...

    超市会员管理系统.rar

    所有会员(卡)--集合:List ArrayList<Member> 程序整体流程搭建的方法 循环 分支 验证会员是否存在的方法 集合的遍历,集合元素的查找 系统随机生成会员卡号的方法 Random类 开卡 输入会员信息...

    Java源码篇之容器类——ArrayList

    Java源码篇之容器类——ArrayList1、前言2、ArrayList的类关系3、ArrayList的源码一、类的属性二、add()方法三、get()方法四、remove()方法五、set()方法4、总结 1、前言 对于平常开发的时候遇到的ArrayList,在此做...

    实验03 Java面向对象编程1.doc

    ○3创建分别获得各域(学号,姓名,性别和年龄)的public方法,以及分别设置各域(学号,姓名,性别和年龄)值的public方法(即get、set方法);另外还要创建获取静态域count值的get方法; ○4创建public型的...

    Weather代码,模拟这个过程,生成天气数据,然后显示出来

    很多家庭都有温湿度计,它实际上是通过大气温度传感器来获取温度和湿度...(1) 温度和湿度属性的getter和setter方法 (2) 生成天气数据的方法public void generate() 使用随机数获取0-40度之间的温度,0-100之间的

    集合anylist要进行筛选.pdf

    这也是面向对象语言的重要特点之一,现在你们先把它理解为,如果一个对象继承了类或接口,那么它也具有了这个类和接口中的方法、属性,可以用这些继承的方法和属性来做相应的操作,比如:数组增加元素没有Add()...

    C#全能速查宝典

    分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...

    Java中List集合对象去重及按属性去重的8种方法

    主要介绍了Java中List集合对象去重及按属性去重的8种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一地的参考借鉴价值,需要的朋友可以参考下

    数据结构与算法:C#语言描述

    2.1.3 取回数组元数据的方法和属性31 2.1.4 多维数组31 2.1.5 参数数组32 2.1.6 锯齿状数组32 2.2ArrayList 类33 2.2.1ArrayList 类的成员34 2.2.2 应用ArrayList 类34 ArrayList grades = new ArrayList(); 34 小结...

    扫雷游戏java设计程序

    这个类定义了网格的一些基本属性,如:横坐标、纵坐标、大小、样式和附近地雷值等,还有用以绘图的paintField方法和 一系列获取和设置变量的方法和用以判断的方法。 2、扫雷场景类MinesFields 变量:(1)定义了行数...

    XStream组件进行Object与XML互转用法

    可以看出person类的name和age属性映射出的节点名称与属性名称相同,那么XStream也支持对类属性的映射配置方法 : aliasField(“节点名称”,”类名称”,”属性名”) 如下: xStream.aliasField("PROFILE", Person....

    超市会员管理系统(java SE)

    (1)所有会员(卡)--集合:List ArrayList<Member> (2)程序整体流程搭建的方法 (3)验证会员是否存在的方法 (4)系统随机生成会员卡号的方法 A:开卡 输入会员信息(会员卡密码的验证--String类相应...

    超市会员管理系统所有代码

    (1)所有会员(卡)--集合:List ArrayList<Member> (2)程序整体流程搭建的方法 循环 分支 (3)验证会员是否存在的方法 集合的遍历,集合元素的查找 (4)系统随机生成会员卡号的方法 Random...

Global site tag (gtag.js) - Google Analytics