ArrayList 是List的实现类,它实现了List中的所有抽象方法。它在存储数据时,采用的数据结构:数组结构
通过代码分析:底层就是数组结构!
常用API
import java.util.ArrayList;import java.util.List;import com.woniuxy.java20.exercise.StudentBean;public class ListStudy {public static void main(String[] args) {// TODO Auto-generated method stub// study01();study02();}private static void study02() {// TODO Auto-generated method stub//指定集合中只能存放 String类型的元素List<String> data = new ArrayList<String>();data.add("隔壁老王");data.add("隔壁老张");data.add("隔壁老宋");data.add(null);//判断集合中是否存在某一个元素System.out.println(data.contains("隔壁老王"));//移除某一个元素System.out.println(data.remove("隔壁老王"));List<StudentBean> stus = new ArrayList<StudentBean>();stus.add(new StudentBean("xiaoz",98,34,12));// stus.add("隔壁小蓉");}private static void study01() {// TODO Auto-generated method stub// 创建一个ArrayList()List data = new ArrayList();// 操作集合String str = "隔壁老张";// 向集合中添加元素data.add(str);StudentBean stu = new StudentBean("刘亦菲", 99, 89, 90);data.add(stu);// 允许放置重复元素data.add(str);data.add(null);// 获取(单个单个)// System.out.println(data.get(0));// System.out.println(data.get(1));// System.out.println(data.get(2));// System.out.println(data.get(3));// 遍历(1) for 结合下标// 元素的个数// int size = data.size();// for(int i = 0; i < size; i ++) {//// System.out.println(data.get(i));// }// 遍历(2) foreach// for (Object object : data) {// if(object instanceof String) {// String string = (String)object;// System.out.println(string);// }else if(object instanceof StudentBean) {// StudentBean student = (StudentBean)object;// System.out.println(student);// }else {// System.out.println(object);// }// }// 遍历(3) 迭代器(一种专门用来遍历集合的接口)// Iterator iterator = data.iterator();// // 判断是否有下一个元素// while (iterator.hasNext()) {//// Object object = iterator.next();// //判断元素的类型// if (object instanceof String) {// String string = (String) object;// System.out.println(string);// } else if (object instanceof StudentBean) {// StudentBean student = (StudentBean) object;// System.out.println(student);// } else {// System.out.println(object);// }//// //迭代器的主要作用:除了遍历集合之外,还可以对元素进行操作// iterator.remove();// }//// 根据下标删除元素data.remove(3);// 根据元素来完成删除(第1个)data.remove(str);// 输出元素的个数System.out.println(data.size());}}
ArralList的扩容方法
new ArrayList() 初始数组容量是0 然后调用add(E e)会自动扩容为 10
当超过10以后,将会发生进一步扩容,扩容是:1.5倍 依次类推……
扩容原理:使用数组的复制原理
