集合与数组类似,也是一种用于装数据的容器。
区别在于:
- 数组定义完成后,类型和长度都是固定的
- 集合的大小不固定,启用后可以动态变化,类型也可以改变
- 集合提供了更多丰富好用的元素,功能。而数组的功能很单一
适用场景:
- 在个数不能确定,且要进行增删数据操作的时候,数组是不合适的
- 集合非常适合做元素个数不确定,且要进行增删操作的业务
注意:
集合中只能存储引用数据类型,不支持基本数据类型
ArrayList 集合的创建
public class Test {
public static void main(String[] args) {
// 创建ArrayList 集合的对象
ArrayList List = new ArrayList();
//添加数量 用 .add()方法
List.add("Java");
List.add("mysql");
List.add("python");
List.add("php");
List.add("web");
List.add(123);
System.out.println(List);
}
}
添加指定索引处的数据
公式: 列表名.add(索引,"添加值");
注: 索引从0开始,2的索引处为数组中第三个,插入数据后,其他元素往后迁移
集合泛型的概述
- <属性> 这种写法就是泛型类,通过上面的案例我们发现,可以往数组里添加字符串,也能添加数字。为了使集合更规范。有时需要使用集合泛型来限制能填入集合的数据类型
- 比如: ArrayList <String> list = new ArrayList(); 因为加了泛型String,这个集合就只能添加字符串类型的变量
常用ArrayList方法
.set( 索引 , 元素值) 用指定的元素替换此列表中指定位置的元素。
.get(int index) 获取某个索引位置处的元素值
.size() 获取集合的长度个数
.remove(int index) 删除指定索引处的元素值
.remove(元素值),删除指定元素值,若有相同的元素,只会删除第一次出现的元素。若想全部删除,用 .removeall();
.listof() 一次添加多个数据
.clear() 清空集合元素
,isEmpty(); 判断集合是否为空
.contains() 判断是否包含指定元素
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// 创建ArrayList 集合的对象
ArrayList List = new ArrayList();
//添加数量 用 .add()方法
List.add("Java");
List.add("mysql");
List.add("python");
List.add("php");
List.add("java");
List.add(123);
System.out.println(List);
List.set(1,"添加项");
System.out.println(List);
System.out.println("--------------");
System.out.println(List.get(1));
System.out.println("--------------");
System.out.println(List.size());
List.remove(1);
System.out.println(List);
System.out.println("--------------");
List.remove("java");
System.out.println(List);
}
}
运行结果如下
遍历集合 .size() .get()
//遍历集合方法一
for (String s : list) {
System.out.println(s);
}
//遍历集合方法二
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//遍历集合方法三
list.forEach(System.out::println);