具体其他方法可以参考官方API:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
@Test
public void test1() {
// ArrayList a = new ArrayList();//这种创建方式可以存放任何类型,字符串,整形等
ArrayList<Integer> array = new ArrayList<Integer>();
// 集合中添加元素
array.add(11);
array.add(22);
array.add(33);
array.add(44);
// 移除集合中指定索引元素,返回移除的元素值
Integer remove = (Integer) array.remove(0);
System.out.println("移除:" + remove);
// array.removeAll(array);//从此列表中删除指定集合中包含的所有元素
// array.clear();//从此列表中删除所有元素
ArrayList<Integer> clone = (ArrayList) array.clone();// 复制一个相同的集合
clone.add(33333);
boolean contains = clone.contains(33333);// 判断是否包含该元素返回true
System.out.println(contains);
System.out.println("索引:" + clone.indexOf(33333));// 返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回-1。
System.out.println(clone.isEmpty());// 如果此列表不包含任何元素,则返回true。
System.out.println("最后一次出现的索引:" + clone.lastIndexOf(33333));// 返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回-1。
System.out.println("列表元素数:" + array.size());// 返回此列表的元素数
array.set(0, 123);// 将指定索引的值替换
List<Integer> subList = array.subList(1, 3);// 返回指定的fromIndex,包含的和toIndex独占的列表部分的视图
System.out.println("---subList---");
for (Integer s : subList) {
System.out.println(s);
}
Object[] array2 = array.toArray();// 以适当的顺序(从第一个元素到最后一个元素)返回包含此列表中所有元素的数组。
// 返回此列表中元素的列表迭代器(按正确顺序)
System.out.println("----ListIterator----");
ListIterator<Integer> listIterator = array.listIterator();
// 添加元素
for (int i = 0; i < 3; i++) {
listIterator.add(i);
}
System.out.println("---反向遍历---");
// 反向遍历起始位置应该是集合的最后一位,需要先定位到集合最后一位然后进行遍历
ListIterator<Integer> listIterator2 = array.listIterator(array.size());
while (listIterator2.hasPrevious()) {
System.out.println(listIterator2.previous() + " ");
}
// 集合迭代器 以适当的顺序返回此列表中元素的迭代器。
System.out.println("---Iterator---");
Iterator<Integer> iterator = array.iterator();
while (iterator.hasNext()) {// 判断是否有下一个元素
System.out.println(iterator.next());
}
ArrayList<Person> person = new ArrayList<Person>();
person.add(new Person("张三", 12));
person.add(new Person("李四", 15));
person.add(new Person("王五", 20));
for (int i = 0; i < person.size(); i++) {
System.out.print("姓名:" + person.get(i).getName());// get(i)只是拿到对象.getName才是对象的属性
System.out.println(" 年龄:" + person.get(i).getAge());
}
}
ListIterator和Iterator区别:
1.Iterator在Set,List接口中都有定义,ListIterator只定义在List接口中
2.ListIterator可以向集合添加(add())数据
3.ListIterator可以通过hasPrevious(),previous()来对集合进行逆向遍历
4.ListIterator可以实现对象的修改
5.ListIterator可以通过previousIndex(),nextIndex()来定位索引位置