一、集合
- 集合:一种操作比较便利的对象容器,可以用于存储多个对象(工具)。
- 位置:位于java.util包中
- 学习集合从以下4点内容进行学习:
(1)集合 接口特点
(2)集合中的 功能方法
(3)集合 实现类
(4)集合的 遍历方式
二、Collection集合体系
1、根接口:Collection
-
特点:用于存储任意类型的对象
-
常用的功能方法
boolean add(Object obj) :往集合中添加一个元素,添加成功-true;不成功-false.(重点)
void clear():清空集合元素
boolean contains(Object o):判断当前集合中是否包含o元素,包含-true,不包含-false.
boolean isEmpty():判断集合是否为空,空-true,不空-false
boolean remove(Object o):将指定o对象从当前集合中删除,删除成功-true,不成功-false(JavaSE引用)
int size();返回集合中元素的个数.(重点)
- Collection具有多个子接口。没有直接实现类,详见子接口的实现类
- 遍历方式:详见 子接口
2、子接口:List,是Collection的子接口
- 特点:存储任意类型的对象,有序、有下标、元素可以重复的。
List集合下标范围:0~size-1 - 功能方法:继承与父接口Colllection中的方法,同时定义了一些独有方法:
void add(int index,Object o):在当前集合中指定下标位置插入元素o;
boolean addAll(int index,Collection c):在当前集合指定位置,一次性插入多个元素
Object get(int index):返回 集合中指定下标的元素
Object remove(int index):返回 集合指定下标的元素.(重点)
Object remove(int index):返回 集合中指定位置元素,被删除的元素作为返回值返回
Object set(int index,Object o):用o替换集合指定位置的元素,被替换的元素作为返回值返回。
List subList(int from index,int toIndex):从当前集合中截取指定元素,从fromIndex开始截取,截取到toIndex-1
- 实现类: ArrayList
- 集合的遍历:对集合中的元素进行一一访问
- 下标遍历:用循环变量控制集合下标
import java.util.ArrayList;
public class TestList {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("团团");
list.add("圆圆");
list.add("芳芳");
list.add("滚滚");
list.add("yueyue");
System.out.println("获取元素个数:"+list.size());
System.out.println("获取下标为1的元素:"+list.get(1));
Object o = list.set(1, "果冻");
System.out.println("将下标为1的元素替换:"+list.get(1));
System.out.println("获取被替换的数据:"+o);
System.out.println();
//获取集合中的每一个元素,遍历集合
for(int i=0;i<list.size();i++) {
System.out.println("下标"+i+"存储的元素:"+list.get(i));
}
System.out.println();
System.out.println("将集合中的每一个元素小写变大写:");
//为什么不封装成一个功能方法:需求多变,不一定满足需求,例如:
//将集合中的每一个元素小写变大写
for(int i=0;i<list.size();i++) {
Object o2 = list.get(i);
String s = (String)o2;
System.out.println("下标"+i+"存储的元素:"+s.toUpperCase());
}
}
}
3、泛型
- 泛型集合 :数据安全性的集合,强制要求集合中存储的数据类型统一 重点
a.List<数据类型> list = new ArrayList<数据类型>();
List<数据类型> list = new ArrayList<>();//简单写法
b.集合中存储的元素必须是<>中中指定的数据类型 - 自定义的泛型类
a.class类名<泛型标识>{
//在类中将泛型标识作为一种数据类型
}
b.泛型类中泛型标识具有的数据类型是根据对象创建时指定:
类名<具体的数据类型> 引用名 = new 类名<具体的数据类型>();
注意:基本数据类型必须使用其包装类型作为泛型类型
三、