List集合
有序:存取顺序是一样的
有索引:可以通过索引操作元素
可重复:存储的元素可以重复
方法名称 | 说明 |
void add(int index , E elemrnt) | 在此集合中的指定位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index , E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
public static void main(String[] args) {
//1.创建一个集合
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
System.out.println(list);
//添加元素
list.add(1,"qqq");
System.out.println(list);
//删除元素
String remove = list.remove(1);
System.out.println(
remove+" is remove"
);
//修改元素 修改指定索引处的元素,返回被修改的元素
String qqq = list.set(0, "QQQ");
System.out.println(qqq);
//查询元素
String s = list.get(0);
System.out.println(s);
List集合的遍历方式:
List继承于collection
迭代器遍历
列表迭代器遍历
增强for遍历
Lambda表达式遍历
普通for循环遍历
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
// 迭代器遍历
// Iterator<String> iterator = list.iterator();
// while (iterator.hasNext())
// {
// String next = iterator.next();
// System.out.println(next);
// }
// 列表迭代器遍历
ListIterator<String> it = list.listIterator();
while (it.hasNext())
{
String next = it.next();
System.out.println(next);
}
// 增强for遍历
// for (String s : list) {
// System.out.println(s);
// }
// Lambda表达式遍历
list.forEach( s->System.out.println(s));
// 普通for循环遍历
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
}
ArrayList集合:
arrylist集合底层原理:
ArrayList底层是数组结构的,数组默认长度为10.
当数组添加满之后,会自动扩充为1.5倍.
1.利用空参构造的集合,再底层创建一个默认长度为0的数组
2.添加第一个元素时,底层会创建一个新的长度为10的数组
size表示元素个数,下一个元素应该存入的位置
3.存满后,会扩容1.5倍
4.如果一次添加多个元素,1.5倍装不下,会创建数组的长度以实际长度为准