ArrayList的用法
ArrayList类是一个特殊的数组。它来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度。
一、优点
1)支持自动改变大小的功能
2)可以灵活的插入元素
3)可以灵活的删除元素
二、局限性
跟一般的数组比起来,速度上差些。
因为它是动态数组,初始化大小容量4,当数据存满时扩容是以当前数组容量大小的2倍扩容,之后再把数组元素一个一个的存入,数组在扩容时浪费一定的内存空间,和存储时间,而且,元素添加是一个装箱的过程,所以说,跟一般的数组比起来,速度上差些。
ArrayList初始化 ArrayList有三种初始化
1)不初始化起容量 ArrayList al = new ArrayList();//默认容量为0,当数组容量满时数组会自动一当前数组容量的2倍扩容
2)初始化容量ArrayList al = new ArrayList(3);//初始容量为3
3)以一个集合或数组初始化ArrayList al = new ArrayList(a);//a为集合或数组
添加
添加元素用其自带的方法add(object value);
ArrayList al = new ArrayList();
al.add(“a”);
Insert(int index,object value)方法也可以用来将元素插入到索引处,不过其有一定的限制性,必须在数组长度以内插入数组
InsertRange(int index,ICollection c)方法同Insert()一样
删除
al.Remove(object obj);//移除数组中的obj元素
al.RemoveAt(int index);//移除索引为index的数字元素
al.RemoveRange(int indext,int count);//移除从索引index开始,移除count个元素
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList studentList = new ArrayList<>();
Student s1 = new Student();
s1.setName("小明");
s1.setClassName("1年级1班");
s1.setAge(8);
Student s2 = new Student("小红","2年级5班",10);
Student s3 = new Student("小白","1年级6班",9);
Student s4 = new Student("小黑","2年级3班",8);
Student s5 = new Student("小蓝","3年级2班",10);
Student s6 = new Student("小黄","2年级1班",8);
Student s7 = new Student("小绿","1年级1班",2);
Student s8 = new Student("小灰","3年级1班",92);
studentList.add(s1);
studentList.add(s1);
studentList.add(s1);
studentList.add(s1);
studentList.add(s1);
studentList.add(s1);
studentList.add(s1);
for (Student stu : studentList) {
System.out.println("姓名:"+stu.getName()+",年级:"+stu.getClassName()+",年龄:"+stu.getAge());
}
studentList.remove(studentList.size()-1);
System.out.println();
for(int i=0;i<studentList.size();i++) {
Student s = studentList.get(i);
System.out.println(s.getName()+"今年"+s.getAge()+"岁,在"+s.getClassName());
}