数组列表是一个存储同一类对象或具有共同超类的对象的数据结构,在程序运行时,列表可以根据需要调整大小,创建数组列表最简单的方法是调用其不带参数的构造函数
ArrayList的创建
ArrayList list = new ArrayList();
在创建数组列表时,可以指定一个初始的容器(大小),这为列表能存放多少个元素提供了指导,该容器作为一个整型参数传递给构造函数
设置大小
ArrayList list = new ArrayList(20);
当创建数据列表时,你需要知道列表打算存储的类或超类,这可以在构造函数中的"<“和”>”符号内来指定。而"<“和”>"符号是一种称为泛型的语言特性。下面是一个改进后的列表构造函数,用来存放String对象
ArrayList<String> list = new ArrayList<>();
add(增加元素)
要创建对象,可将该对象作为参数调用数组列表的add(Object)方法,下面是添加5个字符串的语句
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
list.add("five");
每一个元素都被添加到列表的末尾,因为ArrayList是一个有序的列表
remove(移除元素)
有add()方法也有对应的remove()方法,用来将对象从列表中移除
list.remomve("four");
数组列表的大小是它当前存储的元素的个数,可以调用列表的size()方法来获取,返回的是一个int类型
获取list的大小
int count = list.size();
当使用了泛型来指定列表包含的类时,使用for循环来迭代列表中的每一个元素就很简单了
遍历
for (String string : list) {
System.out.print(string+"");
}
不用迭代打印的结果:
[one, two, three, four, five]
迭代之后打印的结果:
one two three four five
add(Object)方法将对象存储在列表的末尾。也可以在列表中指定对象要存放的位置,从儿将对象存放到列表中,这会用到add(int , Object)方法,该方法的第一个参数表示要存放的位置
ArrayList<String> list = new ArrayList<String>();
list.add(0,"one");
list.add(1,"two");
list.add(2,"three");
list.add(3,"four");
list.add(4,"five");
System.out.println(list.get(1)); //使用get(int)方法获取列表中出现的位置,可以检索到该元素
list.remove(0);
使用for循环将每一个字符串提取出来
ArrayList<String> list = new ArrayList<String>();
list.add(0,"one");
list.add(1,"two");
list.add(2,"three");
list.add(3,"four");
list.add(4,"five");
for(int i = 0; i < list.size(); i++) { //遍历所有
String arrlist = list.get(i);
System.out.println(arrlist);
}
匿名创建
有一种匿名的创建方法,如下所示这中叫做匿名创建
ArrayList<String> list = new ArrayList<String>() {
{
add("one");
add("two");
add("three");
}
};