常用方法名介绍
常用方法名 | 说明 |
---|---|
public boolean add (E e) | 将指定的元素添加到此集合的末尾 |
public void add (int index,E element) | 在此集合中的指定位置插入指定的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size () | 返回集合中的元素个数 |
public E remove (int index) | 删除指定索引处的元素,返回被删除的元素 |
public boolean remove (Object o) | 删除指定的元素,返回删除是否成功 |
public E set (int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
代码演示
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
//1.创建一个ArrayList的集合对象
ArrayList<String> list = new ArrayList();
list.add("wgj");
list.add("java");
list.add("wgj");
System.out.println(list);//[wgj,java.wgj]
System.out.println("=======================");
//2.在集合中的某个索引位置处添加一个数据
list.add(1,"MySQL");
System.out.println(list);//[wgj,MySQL,java,wgj]
System.out.println("=======================");
//3.根据索引获取集合中某个索引位置处的值
String rs = list.get(1);
System.out.println(rs);//MySQL
System.out.println("=======================");
//4.获取集合大小(返回集合中存储的元素个数)
System.out.println(list.size());//4
System.out.println("=======================");
//5.根据索引删除集合中的某个元素值,会返回被删除的元素值给我们
System.out.println(list.remove(1));//MySQL
System.out.println(list);//[wgj,java,wgj]
System.out.println("=======================");
//6.直接删除某个元素值,删除成功会返回true,反之
//默认删除第一次出现的这个值
System.out.println(list.remove("wgj"));//true
System.out.println(list);//[java,wgj]
System.out.println("=======================");
//7.修改某个索引位置处的数据,修改后会返回原来的值给我们
System.out.println(list.set(1,"java"));//wgj
System.out.println(list);//[java,java]
}
}
简单应用案例介绍
假如你打算学java,在购物车中添加了几件商品java相关的书,现在你的购物车里有:雨伞,java入门,java进阶,拖鞋,java精通,java大神,衬衫。但是你突然不想学java了,想把和java有关的书都从购物车清除。
import java.util.ArrayList;
public class ArrayListTest2 {
public static void main(String[] args) {
//1.创建一个ArrayList集合对象
ArrayList<String> list = new ArrayList<>();
list.add("雨伞");
list.add("java入门");
list.add("java进阶");
list.add("拖鞋");
list.add("java精通");
list.add("java大神");
list.add("衬衫");
System.out.println(list);
//2.开始完成需求,从集合中找出包含java的数据并删除它
for (int i = 0; i < list.size(); i++) {
//i = 0 1 2 3 4 5 6
//取出当前遍历到的数据
String date = list.get(i);
//判断这个数据中包含java
if(date.contains("java")){
//直接从集合中删除该数据
list.remove(date);
i--;//i--很重要,没有i--会导致删除不全。
}
}
System.out.println(list);
}
}
输出结果:
删除集合数据中的i--很重要,没有i--会导致删除不全。会出现下图情况:
当删除了java入门后,后面的所有数据会向前移动,java进阶就到了之前java入门的位置了,但是这时候i+1之后来到了拖鞋的位置,会把java进阶漏掉,后面的java大神也是同理,所以我们要用i--来修正。或者说我们可以从后往前来删除和java相关的数据。
只需要修改一下for循环:
for (int i = list.size()-1; i >=0 ; i--) {
//i = 6 5 4 3 2 1 0
//取出当前遍历到的数据
String date = list.get(i);
//判断这个数据中包含java
if(date.contains("java")){
//直接从集合中删除该数据
list.remove(date);
}
}