概念
ArrayList是集合的一种,支持索引
特点
- 集合的大小不固定,可以动态变化
- 集合提供很多方便好用的功能
- 集合的类型不固定
注意
需要import一个java.util.ArrayList;
构造器
public ArrayList() //创建一个空的集合
常用方法
1、public boolean add(E)
作用:将指定元素添加到集合末尾
package ArraryList;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//创建一个ArrayList对象
ArrayList list = new ArrayList();
list.add("Java");
list.add("Java");
list.add("yierkang");
list.add(23);
list.add(false);
//以上添加的方法返回布尔类型,添加成功返回true,失败返回false
System.out.println(list);
}
}
运行结果
2、public boolean add(int index,E)
作用:将元素加入到指定位置,括号前是添加的位置,后是添加的元素
package ArraryList;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//创建一个ArrayList对象
ArrayList list = new ArrayList();
list.add("Java");
list.add("Java");
list.add("yierkang");
list.add(23);
list.add(false);
//以上添加的方法返回布尔类型,添加成功返回true,失败返回false
System.out.println(list);
list.add(1,"插队!");
//System.out.println(list);
}
}
运行结果
3、Collections.addAll(E,element1,element2,...);
作用:批量添加元素到集合中
package ArraryList;
import java.util.ArrayList;
import java.util.Collections;//需要import一个java.util.Collections的包
public class test1 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Collections.addAll(list,98,77,66,89,79,50,100);
//括号内第一个是要添加的集合,后边是添加的元素
System.out.println(list);
}
}
运行结果
注意:需要import一个java.util.Collections的包
4、ArrayList<E>
作用:泛型,限制集合内的类型,括号内填数据类型(例如String,int,double等)
例如
ArrayList<String>;//只能操作字符串类型
ArrayList<Integer>;//只能操作整形类型
注意:集合只能存储引用类型,不支持基本类型
package ArraryList;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//创建一个ArrayList对象
ArrayList<String> list2 = new ArrayList<String>();//jkd1.7以后后面的<>可以不用声明
list2.add("Java");
list2.add(23);//会产生报错,该集合不能添加除字符串以外的类型
}
}
5、public E get(int index)
作用:查找指定位置的元素值,括号内填查找的位置
package ArraryList;
import java.util.ArrayList;
public class Api {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("Java");
list.add("MySQl");
list.add("C#");
System.out.println(list.get(2));//方法调用
//跟数组一样,从0开始,取第二位
}
}
运行结果
6、public int size()
作用:返回集合的数量(元素个数)
package ArraryList;
import java.util.ArrayList;
public class Api {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("Java");
list.add("MySQl");
list.add("C#");
System.out.println(list.size());//调用方法
//返回值为整形
}
}
运行结果
7、集合的遍历(不算方法)
package ArraryList;
import java.util.ArrayList;
public class Api {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("Java");
list.add("MySQl");
list.add("C#");
//开始遍历
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
}
}
运行结果
8、public E remove(E element)
作用:移除集合中指定位置的元素并返回该元素
package ArraryList;
import java.util.ArrayList;
public class Api {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("Java");
list.add("MySQl");
list.add("C#");
//输出被删除的元素
System.out.println(list.remove(2));//调用方法
//输出被删除后的集合
System.out.println(list);
}
}
运行结果
9、public boolean remove("String E")
作用:直接删除指定元素,删除成功返回true,失败返回false(括号内输入具体要移除的元素)
package ArraryList;
import java.util.ArrayList;
public class Api {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("Java");
list.add("MySQl");
list.add("Java");
list.add("C#");
list.add("Ziggbee");
System.out.println(list.remove("Java"));
System.out.println(list);
}
}
运行结果
注意:如果有重复的元素,优先且只删除最先出现的
10、public E set(int index,String E)
作用:修改指定索引位置的元素值,并返回被删除的值(括号前是要修改元素的位置,后边是修改后的元素)
package ArraryList;
import java.util.ArrayList;
public class Api {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList();
list.add("Java");
list.add("MySQl");
list.add("Java");
list.add("C#");
list.add("Ziggbee");
System.out.println(list.set(3, "C++"));//调用方法
//修改第3位的内容为“C++”
System.out.println(list);
}
}
运行结果
储存自定义类型的对象
Main
package ArraryList;
import java.util.ArrayList;
import java.util.Collections;
public class MovieMain {
public static void main(String[] args) {
ArrayList<Movie> list = new ArrayList<>();//添加类型为Movie类
Movie m1 = new Movie("肖申克的救赎",9.8,"蒂姆·罗宾斯");
Movie m2 = new Movie("霸王别姬",9.8,"张国荣、张丰毅");
Movie m3 = new Movie("阿甘正传",9.8,"张国荣、张丰毅");
Collections.addAll(list,m1,m2,m3);//批量导入
//遍历集合的内容
for(int i=0;i<list.size();i++) {
System.out.println("电影名称:"+list.get(i).getName());
System.out.println("电影分数:"+list.get(i).getScore());
System.out.println("电影演员:"+list.get(i).getActor());
System.out.println("---------------");
}
}
}
Movie类
package ArraryList;
public class Movie {
//变量
private String name;
private double score;
private String actor;
//无参构造器
public Movie() {
// TODO 自动生成的构造函数存根
}
//有参构造器,用来存入数据
public Movie(String name, double score, String actor) {
super();
this.name = name;
this.score = score;
this.actor = actor;
}
//get
public String getName() {
return name;
}
public double getScore() {
return score;
}
public String getActor() {
return actor;
}
//set
public void setName(String name) {
this.name = name;
}
public void setScore(double score) {
this.score = score;
}
public void setActor(String actor) {
this.actor = actor;
}
}