一、Java集合概述
1、集合的引入
java的基本数据类型,引用数据类型都是可以用来存储我们的数据的,但是仅仅只能存储单个,可以通过数组的形式来存储多个数据,但是数组的特点是长度是不能改变的,那也就意味着数组在处理需要对数组中的数据做添加和删除操作的时候机会显得非常麻烦。
2、集合的概念
javaAPI所提供的一系列类的实例,可以用来动态的存放多个对象,java集合框架提供了一套性能优良,使用方便的接口和类,位于java.util包中
集合的特点:长度不固定,只能存储引用数据类型的对象。
3、集合与数组的区别
集合 | 数组 | |
---|---|---|
长度 | 长度不固定可改变 | 长度固定不可改变 |
内容 | 可以存储不同数据类型的数据 | 存储的是同一种类型的数据 |
存储数据类型 | 引用数据类型 | 基本数据类型和引用数据类型 |
二、ArrayList集合
1、集合的创建
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
//1.创建集合的对象
//泛型:限定集合存储数据的类型
//JDK7以前的写法:ArrayList<String> objects = new ArrayList<String>();
//JDK7以后
ArrayList<String> strings = new ArrayList<>();
//此时我们创建的是ArrayList的对象,而ArrayList是java已经写好的一个类
//这个类在底层做了一些处理
//打印对象不是地址值,而是集合中存储数据内容
//在展示的时候会拿[]把所有数据进行包裹
System.out.println(strings);
}
}
2、ArrayList成员方法
方法名 | 说明 |
---|---|
boolean add(E e) | 添加元素,返回值表示是否添加成功 |
boolean remove(E e) | 删除指定元素,返回值表示是否删除成功 |
E remove(int index) | 删除指定索引的元素,返回被删除元素 |
E set(int index,E e) | 修改指定索引下的元素,返回原来的元素 |
E get(int index) | 获取指定索引的元素 |
int size() | 集合的长度,也就是集合中元素的个数 |
import java.util.ArrayList;
public class ArrayListDemo2 {
/*
| boolean add(E e) | 添加元素,返回值表示是否添加成功 |
| -------------------- | ------------------------------------ |
| boolean remove(E e) | 删除指定元素,返回值表示是否删除成功 |
| E remove(int index) | 删除指定索引的元素,返回被删除元素 |
| E set(int index,E e) | 修改指定索引下的元素,返回原来的元素 |
| E get(int index) | 获取指定索引的元素 |
| int size() | 集合的长度,也就是集合中元素的个数 |
*/
public static void main(String[] args) {
//1.创建一个集合
ArrayList<String> strings = new ArrayList<>();
//2.添加元素
strings.add("aaa");
strings.add("bbb");
strings.add("ccc");
strings.add("ddd");
System.out.println(strings);
//3.删除元素
//(1)、返回删除是否成功
boolean removeResult = strings.remove("aaa");
System.out.println(removeResult);
boolean removeResult1 = strings.remove("fff");
System.out.println(removeResult1);
//(2)、返回删除元素的值
String str = strings.remove(2);
System.out.println(str);
//3.修改元素 返回被覆盖的元素
String set = strings.set(0, "fff");
System.out.println(set);
//4.查询元素
String s = strings.get(0);
System.out.println(s);
System.out.println(strings);
strings.add("aaa");
strings.add("bbb");
//遍历
for (int i = 0; i < strings.size(); i++) {
//i 索引
//strings.get(i) 元素
String s1 = strings.get(i);
System.out.println(s1);
}
System.out.println("========================================");
//利用forEach进行遍历
for (String string:strings) {
System.out.println(string);
}
}
}
运行结果:
[aaa, bbb, ccc, ddd]
true
false
ddd
bbb
fff
[fff, ccc]
fff
ccc
aaa
bbb
========================================
fff
ccc
aaa
bbb