ArrayList
public class List {
public static void main(String[] args) {
//TODO ArrayList : Array + List
//List : 列表,清单 -- 按照数据插入顺序进行存储
//Array : 数组,阵列 -- ArrayList的底层是一个数组
//1. 不需要传递构造参数 -- 底层是空数组
ArrayList list = new ArrayList();
//2. 需要传递一个int类型的值,用于设定底层数组的长度
//3. 需要传递一个Collection集合类型的值,用于将其他集合的数据放置于当前集合中
//TODO 增加数据
//add方法 可以增加数据,将数据作为参数传递到add方法即可
//添加第一条数据时,如果集合中没有任何数据,则底层会固定创建长度为 10 的数组
//集合的数组中存放的不是对象本身,而是对象的索引
list.add("zz");
list.add(1);
list.add("zz");
list.add("zz");
list.add("zz");
list.add(1,"haha"); //指定位置的add = 顺序表的插入,之后的元素会逐个后移
//TODO add的底层原理
// 当ArrayList中的数组存满后,会创建容量更大的新数组 -- !而不是将旧数据扩容
// 将旧数组中已经有的索引复制到新数组中,再释放旧数组空间
//.size() 获取集合中数据的条数
System.out.println(list.size());
//.get() 采用索引方式获取指定位置的数据 -- 底层是数组 => 数据的索引 0 ~ length-1
System.out.println(list.get(0));
// 遍历集合中的数据
for (int i = 0; i < list.size(); i++) {
System.out.println("for集合中的数据:" + list.get(i));
}
//for-each循环
for(Object obj : list){
System.out.println("for-each : " + obj);
}
//TODO 修改数据
//.set() 修改指定位置的数据
//第一个参数表示数据位置,第二个参数表示修改的值,并返回更新前的值
Object oldValue = list.set(0,"hehe");
System.out.println("修改前的值:"+oldValue);
//TODO 删除数据
//.remove() 传入删除数据的位置,返回删除数据的值
System.out.println("删除的值" + list.remove(0));
//TODO addAll
//将另一个集合的所有元素按序添加到集合中,且保留插入的集合 => 集合中有子集合
ArrayList otherList = new ArrayList();
otherList.add("a");
otherList.add("b");
otherList.add("c");
list.addAll(otherList);
//TODO isEmpty() 判断是否为空
System.out.println(list.size());
System.out.println(list.isEmpty());
//.clear() 删除集合中所有数据,集合的数组容量不变
//list.clear();
//.removeAll() 删除集合中子集合的全部数据
System.out.println(list); // [haha, 1, zz, a, b, c]
list.removeAll(otherList); // otherList : [a, b, c]
System.out.println(list); // [haha, 1, zz]
//TODO .contains() 判断集合中是否存在某条数据
System.out.println(list.contains("haha")); //true
//TODO .indexOf() 检索数据在集合中的位置,存在返回第一个数据的位置,不存在返回 -1
System.out.println(list.indexOf("zz")); //2
//TODO .lastIndexOf() 检索数据在集合中的位置,存在返回最后一个数据的位置,不存在返回 -1
System.out.println(list.lastIndexOf("zz")); //4
//中间的数据无法获取
//TODO .toArray() 集合转数组
Object[] objects = list.toArray();
//TODO .clone() 克隆\复制 一个和原集合内容相同的新对象
ArrayList list1 = (ArrayList) list.clone();
System.out.println(list1);
}
}
标签:ArrayList,list,System,println,add,集合,out
From: https://www.cnblogs.com/Ashen-/p/17022140.html