ArrayList<E>
ArrayList是一个List接口的实现类
底层使用的是一个可变长度的数组
<E>,一种特殊的数据类型(引用数据类型)-泛型
例如:new ArrayList<String>();new ArrayList<Student
构造方法和添加方法
方法名 | 说明 |
public ArrayList<E>() | 创建一个新的集合 |
public boolean add(E e) | 将指定的元素追加到集合的末尾 |
public void add(int index,E e) | 在集合指定的位置中添加元素(插入元素),原位置和之后位置的元素一词后移 |
public void addAll(E object) | 用于将指定集合中的元素插入到当前集合 |
package com.pj;
import java.util.ArrayList;
/**
* @author pj_hxj
* @Description:
*/
public class Demo {
public static void main(String[] args) {
//创建一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");//[张三, 李四, 王五, 赵六]
//根据下标添加元素
//IndexOutOfBoundsException 索引超过集合的个数,会抛出下标越界的异常
//list.add(10,"zs");
//System.out.println(list);java.lang.IndexOutOfBoundsException: Index: 10, Size: 4
list.add(2,"ls");//[张三, 李四, ls, 王五, 赵六]
list.add(5,"ww");//[张三, 李四, ls, 王五, 赵六, ww]
ArrayList<String> list1 = new ArrayList<>();
list1.add("1");
list1.add("2");
list1.addAll(list);
System.out.println("原集合中的元素"+list);
System.out.println("新集合中的元素"+list1);
//原集合中的元素[张三, 李四, ls, 王五, 赵六, ww]
//新集合中的元素[1, 2, 张三, 李四, ls, 王五, 赵六, ww]
}
}
常用方法
方法名 | 说明 |
public boolean remove(Object o) | 删除指定的元素,成功返回true |
public E remove(int index) | 删除指定索引的元素,成功被返回删除的元素 |
public E set(int index,Object o) | 修改指定索引的元素,修改成功返回原本的元素 |
public E get(int index) | 获取指定索引的元素 |
public int size() | 获取集合中元素的个数 |
package com.pj;
import java.util.ArrayList;
/**
* @author pj_hxj
* @Description:
*/
public class Demo01 {
public static void main(String[] args) {
//创建一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");//[张三, 李四, 王五, 赵六]
//删除,通过元素删除
list.remove("王五");//[张三, 李四, 赵六]
//通过索引删除元素,返回被删除的元素
String remove = list.remove(1);//remove=李四,list=[张三, 赵六]
//修改元素,返回被修改的元素
String set = list.set(1, "六六");//set=赵六,list=[张三, 六六]
//获取指定索引的元素
String s = list.get(1);//s=六六
//获取长度
System.out.println(list.size());//2
}
}
对集合的遍历方法
package com.pj;
import java.util.ArrayList;
import java.util.Iterator;
/**
* @author pj_hxj
* @Description:
*/
public class Demo01 {
public static void main(String[] args) {
//创建一个空的集合
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");//[张三, 李四, 王五, 赵六]
//遍历集合
//普通for循环
for (int i = 0; i <list.size() ; i++) {
System.out.print(list.get(i)+"\t"); //张三 李四 王五 赵六
}
System.out.println();
//增强for循环
for (String arr:list) {
//String表示集合的数据类型
//arr用来接收集合的元素
//list被遍历的集合
System.out.print(arr+"\t");//张三 李四 王五 赵六
}
System.out.println();
//使用迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()){//判断是否有下一个元素
System.out.print(it.next()+"\t");//张三 李四 王五 赵六
}
//通过system流进行遍历
list.stream().forEach(System.out::println);//张三 李四 王五 赵六