java中Arraylist是干什么的?怎么用?

 我来答
白卡PALA
2017-07-13 · 知道合伙人软件行家
白卡PALA
知道合伙人软件行家
采纳数:648 获赞数:3420
性能测试4年工作经验。

向TA提问 私信TA
展开全部

1、ArrayList就是动态数组

可以把它当做是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 ;实现了ICollection和IList接口 ;灵活的设置数组的大小。

2、使用ArrayList 的例子:

ArrayList List = new ArrayList(); 
for( int i=0;i <10;i++ ) //给数组增加10个Int元素 
List.Add(i); 
//..程序做一些处理 
List.RemoveAt(5);//将第6个元素移除 
for( int i=0;i <3;i++ ) //再增加3个元素 
List.Add(i+20); 
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组


3、ArrayList 的重要方法和属性:

1)构造器 
ArrayList提供了三个构造器: 

public ArrayList();

默认的构造器,将会以默认(16)的大小来初始化内部的数组 

public ArrayList(ICollection);

用一个ICollection对象来构造,并将该集合的元素添加到ArrayList 

public ArrayList(int);

用指定的大小来初始化内部的数组

2)常用方法

add方法用于添加一个元素到当前列表的末尾 ;

addRange方法用于添加一批元素到当前列表的末尾 ;

remove方法用于删除一个元素,通过元素本身的引用来删除 ;

removeAt方法用于删除一个元素,通过索引值来删除 ;

removeRange用于删除一批元素,通过指定开始的索引和删除的数量来删除 ;

insert用于添加一个元素到指定位置,列表后面的元素依次往后移动 ;

insertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动;

另外,还有几个类似的方法: 

clear方法用于清除现有所有的元素;

contains方法用来查找某个对象在不在列表之中;

3)TrimSize方法 

这个方法用于将ArrayList固定到实际元素的大小,当动态数组元素确定不在添加的时候,可以调用这个方法来释放空余的内存。 


4)ToArray方法 

这个方法把ArrayList的元素Copy到一个新的数组中。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
影视后期制作学习
2017-06-09 · 知道合伙人教育行家
影视后期制作学习
知道合伙人教育行家
采纳数:258 获赞数:698
荣获北京智泽苑教育科技有限公司金牌教师称号。

向TA提问 私信TA
展开全部


       ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。

它提供了如下一些好处:
动态的增加和减少元素
实现了ICollection和IList接口
灵活的设置数组的大小

局限性:跟一般的数组比起来,速度上差

2,使用方法

代码如下:

public boolean add(E e) {

ensureCapacity(size + 1);  // 增加元素,判断是否能够容纳。不能的话就要新建数组

elementData[size++] = e;

return true;

}

public void ensureCapacity(int minCapacity) {

modCount++;

int oldCapacity = elementData.length;

if (minCapacity > oldCapacity) {

Object oldData[] = elementData; // 此行没看出来用处,不知道开发者出于什么考虑

int newCapacity = (oldCapacity * 3)/2 + 1; // 增加新的数组的大小

if (newCapacity < minCapacity)

newCapacity = minCapacity;

// minCapacity is usually close to size, so this is a win:

elementData = Arrays.copyOf(elementData, newCapacity);

}

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
min_happy
2009-02-23 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
一个数组,比起普通的数组,它可以存对象。
它在内存中就已经分配了大小。
例如:
User user=new User();
Arraylist list=new ArrayList();
list.add(user);
这些都是java里一些基本的知识,如果你对Java不是很了解的话,就买一本关于的书去看看吧!
毕竟这样子说的也不是很清楚。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjiakang
2009-02-23 · TA获得超过110个赞
知道答主
回答量:127
采纳率:0%
帮助的人:86.4万
展开全部
简单的是 其作用跟数组差不多 只是不用预先定义元素个数,并可以动态增减元素,可以用作封装数据等,具体用法 1楼说的很详细了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式