文章目录
一丶集合体系结构
- 单列集合
单列集合体系
List系列集合: 添加元素是有序 可重复 有索引的
Set系列集合: 添加的元素是无序 不重复 无索引的
2.双列集合
二丶Collection集合
1. Collection的使用说明
Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。
方法名称 | 说明 |
---|---|
public boolean add(E e) | 把给定的对象添加到当前集合中 |
public void clear() | 清空集合中所有的元素 |
public boolean remove(E e) | 把给定的对象在当前集合中删除 |
public boolean contains(object obj) | 判断当前集合中是否包含给定的对象 |
public boolean isEmpty() | 判断当前集合是否为空 |
public int size() | 返回集合中元素的个数/集合的长度 |
添加元素
清空集合
删除对象
查询是否存在
判断集合是否为空
获取集合长度
(1)代码呈现
package myCollection;
import java.util.ArrayList;
import java.util.Collection;
public class A01_CollectionDemo1 {
public static void main(String[] args) {
/*
public boolean add(E e) 把给定的对象添加到当前集合中
public void clear() 清空集合中所有的元素
public boolean remove(E e) 把给定的对象在当前集合中删除
public boolean contains(object obj) 判断当前集合中是否包含给定的对象
public boolean isEmpty() 判断当前集合是否为空
public int size() 返回集合中元素的个数/集合的长度
注意点:Collection是一个接口,我们不能直接创建它的对象
所以 我们学习他的方法时,只能创建他的实现类的对象
*/
Collection<String> coll = new ArrayList<String>();
//1.添加元素
//细节:如果要往list系列集合中添加数据,那么返回方法永远是true 因为list系列允许元素重复
//细节:如果要往set系列集合中添加数据,如果当前元素不存在则返回true,如果存在则返回fals,因为set集合不允许重复
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
System.out.println(coll);
//2.清空集合
//coll.clear();
//3.删除对象
//细节1:因为co11ection里面定义的是共性的方法,所以此时不通过索引进行除。只能通过元素的对象进行删除
//细节2:方法会有一个布尔类型的返回值。删除成功返回true,删除失败返回false
//如果要删除的元素不存在,就会则失败
//coll.remove("aaa");
//4.判断元素是否包含
//细节:底层是依赖equals方法进行判断是否存在的。
//所以,如果集合中存储的是自定义对象,也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。
//boolean result = coll.contains("aaa");
//System.out.println(result);
//5.判断集合是否为空
//boolean result2 = coll.isEmpty();
//6.获取集合的长度
int size = coll.size();
System.out.println(size);
}
}
2. Collection的遍历方式
- 迭代器遍历(不依赖索引)
- 增强for遍历
- Lambda遍历
(1)迭代器遍历
迭代器在java中的类是iterator,迭代器是集合专用的遍历方式
Collection集合获取迭代器
方法名称 | 说明 |
---|---|
Iterator iterator() | 返回迭代器对象,默认指向当前集合的0索引 |
lterator中的常用方法
方法名称 | 说明 |
---|---|
boolean hasNext() | 判断当前位置是否有元素,有元素返回true,没有元素返回false |
E next() | 获取当前位置的元素,并将迭代器对象移向下一位置 |
注意点
1,报错NoSuchElementException
2,迭代器遍历完毕,指针不会复位
3,循环中只能用一次next方法
4,迭代器遍历时,不能用集合的方法进行增加或者删除
(2)增强for遍历
- 增强for的底层就是迭代器,为了简化选代器的代码书写的,
- 它是JDK5之后出现的,其内部原理就是一个Iterator迭代器
- 所有的单列集合和数组才能用增强for进行遍历。
增强for的小细节
- 修改增强for中的变量,不会改变集合中原本的数据
(3)Lambda表达式遍历
得益于JDK 8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式
方法名称 | 说明 |
---|---|
default void forEach(Consumer<? super T> action): | 结合lambda遍历集合 |
![]() |