java中Arraylist是干什么的?怎么用?
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到一个新的数组中。
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);
}
}
它在内存中就已经分配了大小。
例如:
User user=new User();
Arraylist list=new ArrayList();
list.add(user);
这些都是java里一些基本的知识,如果你对Java不是很了解的话,就买一本关于的书去看看吧!
毕竟这样子说的也不是很清楚。