arraylist api java_[17]-容器__List接口_ArrayList_用法(API)

List接口 有序,不唯一(java.util)

ArrayList 底层数据结构是数组

优点:遍历数组比较快

缺点:删除和添加元素效率比较低

(删除和添加的快慢和效率取决于插入的位置以及总容量的数量)

每次扩容0.5倍

(1)添加元素

list1.add("Hello");

(2)查看集合中元素的个数 size()

list1.size()

(3)查看集合是否为空

list1.isEmpty()

(4)将指定元素对象添加到当前集合中 addAll(Collection c)

List list1 = new ArrayList<>();

//(1)添加元素 add(Object obj)

list1.add("Hello");

list1.add(123);//自动装箱 Integer类型

List list2 = new ArrayList<>();

list2.add("hello");

list2.add(456);

list1.addAll(list2);

System.out.println("重新查看list1中的元素个数:"+list1.size());

System.out.println("查看list集合中的元素:"+list1);

(5)删除元素 (对象&索引两种方式 从左到右第一个)

list1.remove("hello")

System.out.println("根据对象删除元素:"+list1.remove("hello"));

//删除123 System.out.println("根据索引来删除:"+list1.remove(0));

//list1.remove(123) 会报错,原因是超出边界,因为编译器会认为是删除索引list1.remove(new Integer(123));//此处为正确方式 //删除 a 集合中所有 b集合里包含的内容 list1[hello,123,world] list2[hello,123] list1.remove(list2);//执行后 只剩下 list1[world]//删除 两个集合中不同的元素 list1.retainAll(list2);

(6)判断 指定元素在集合中是否存在(返回boolean类型结果 true/false

System.out.println("hello在集合中是否存在:"+list1.contains("hello"));

//判断集合1是否包含集合2全部元素(返回boolean类型结果 true/false

System.out.println("判断集合1是否包含集合2全部元素"+list1.containsAll(list2));

(7)清空集合内所有元素对象

list1.clear();

(8)获取指定索引位置上的元素对象

list1.get(1);

(9)将指定索引位置上的元素对象设置成新对象

list1.set(1,"java");

(10)在指定的位置上添加

list1.add(1,"html");

(11)查找元素在集合中的位置 (左到右第一个元素对象) 没有为-1

list1.indexOf("java");

(12)遍历集合中所有的内容

12.1 使用加强for循环去遍历集合中的元素

System.out.println("使用加强for循环去遍历集合中的元素");

for (Object obj : list1) {

System.out.println(obj);

}

12.2 使用普通for循环遍历

System.out.println("使用普通for循环遍历");

for (int i = 0; i < list1.size(); i++) {

System.out.println(list1.get(i));//get 根据索引去获取对象

}

12.3.1 使用迭代器遍历(正向遍历)

Iterator ite = list1.iterator(); //正向遍历

while (ite.hasNext()){//判断集合中是否有元素对象

Object obj = ite.next();//自动进行了向上类型转换

System.out.println(obj);

}

12.3.2 使用迭代器遍历(逆向遍历)

System.out.println("使用listIterator()逆向遍历");

ListIterator listIterator = list1.listIterator();

System.out.println("正向遍历");//原理:先看看集合中的元素有那些再进行逆向遍历 System.out.println("在集合开头,后面还有元素吗"+listIterator.hasNext());

System.out.println("在集合开头,前面还有元素吗"+listIterator.hasPrevious());

while (listIterator.hasNext()){

System.out.println(listIterator.next());

}

System.out.println("到达集合末尾,后面还有元素吗"+listIterator.hasNext());

System.out.println("到达集合末尾,前面还有元素吗"+listIterator.hasPrevious());

System.out.println("逆向遍历集合中的元素");

while (listIterator.hasPrevious()){

System.out.println(listIterator.previous());

}

package com.lin.list;

import java.util.*;

public class TestArrayList {

public static void main(String[] args) {

//创建集合对象 接口 new 实现类

List list1 = new ArrayList<>();

//(1)添加元素 add(Object obj)

list1.add("Hello");

list1.add(123);//自动装箱 Integer类型

list1.add(new Scanner(System.in));

//(2)查看集合中元素的个数 size()

System.out.println(list1.size());

//(3)查看集合是否为空

System.out.println("查看集合是否为空:"+list1.isEmpty());

//(4)将指定元素对象添加到当前集合中 addAll(Collection c)

List list2 = new ArrayList();

list2.add("hello");

list2.add(456);

list1.addAll(list2);

System.out.println("重新查看list1中的元素个数:"+list1.size());

System.out.println("查看list集合中的元素:"+list1);

//(5)删除元素 (对象&索引两种方式 从左到右第一个)

System.out.println("根据对象删除元素:"+list1.remove("hello"));

//删除123

System.out.println("根据索引来删除:"+list1.remove(0));

//list1.remove(123) 会报错,原因是超出边界,因为编译器会认为是删除索引

list1.remove(new Integer(123));//此处为正确方式

//删除 a 集合中所有 b集合里包含的内容 list1[hello,123,world] list2[hello,123]

list1.remove(list2);//执行后 只剩下 list1[world]

//删除 两个集合中不同的元素

list1.retainAll(list2);

//(6)判断 指定元素在集合中是否存在(返回boolean类型结果 true/false

System.out.println("hello在集合中是否存在:"+list1.contains("hello"));

//判断集合1是否包含集合2全部元素(返回boolean类型结果 true/false

System.out.println("判断集合1是否包含集合2全部元素"+list1.containsAll(list2));

//(7)清空集合内所有元素对象

list1.clear();

//(8)获取指定索引位置上的元素对象

System.out.println("获取索引位置为1的对象"+list1.get(1));

//(9)将指定索引位置上的元素对象设置成新对象

list1.set(1,"java");

//(10)在指定的位置上添加

list1.add(1,"html");

//(11)查找元素在集合中的位置 (左到右第一个元素对象) 没有为-1

list1.indexOf("java");

//(12)遍历集合中所有的内容

//12.1 使用加强for循环去遍历集合中的元素

System.out.println("使用加强for循环去遍历集合中的元素");

for (Object obj : list1) {

System.out.println(obj);

}

//12.2 使用普通for循环遍历

System.out.println("使用普通for循环遍历");

for (int i = 0; i < list1.size(); i++) {

System.out.println(list1.get(i));//get 根据索引去获取对象

}

//12.3 使用迭代器遍历

Iterator ite = list1.iterator(); //正向遍历

while (ite.hasNext()){//判断集合中是否有元素对象

Object obj = ite.next();//自动进行了向上类型转换

System.out.println(obj);

}

System.out.println("使用listIterator()逆向遍历");

ListIterator listIterator = list1.listIterator();

System.out.println("正向遍历");//原理:先看看集合中的元素有那些再进行逆向遍历

System.out.println("在集合开头,后面还有元素吗"+listIterator.hasNext());

System.out.println("在集合开头,前面还有元素吗"+listIterator.hasPrevious());

while (listIterator.hasNext()){

System.out.println(listIterator.next());

}

System.out.println("到达集合末尾,后面还有元素吗"+listIterator.hasNext());

System.out.println("到达集合末尾,前面还有元素吗"+listIterator.hasPrevious());

System.out.println("逆向遍历集合中的元素");

while (listIterator.hasPrevious()){

System.out.println(listIterator.previous());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值