数组与集合的区别
集合类体系结构
Collection 集合(单列)
概述
使用方式
Collection集合常用方法
代码实现
Collection的遍历
迭代器
增强for循环
下回分解
数组与集合的区别
相同点
都是容器,可以存储多个数据
不同点
数组的长度是不可变的,集合的长度是可变的
数组可以存基本数据类型和引用数据类型
集合只能存引用数据类型,如果需要存基本数据类型,需要存对应的包装类(int -> Integer)
集合类体系结构
其中蓝色的表示接口,红色的表示实现类。
Collection 集合(单列) 概述
是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
JDK 不提供此接口的任何直接实现。它提供更具体的子接口(如Set和List)实现
使用方式
创建Collection集合的对象
多态的方式
具体的实现类ArrayList
Collection集合常用方法 方法名 说明 boolean add(E e)添加元素boolean remove(Object o)从集合中移除指定的元素boolean removeIf(Object o)根据条件进行移除void clear()清空集合中的元素boolean contains(Object o)判断集合中是否存在指定的元素boolean isEmpty()判断集合是否为空int size()集合的长度,也就是集合中元素的个数
注意:
removeif底层会遍历集合,得到集合中的每一个元素。将每一个元素代入lambda表达式中判断一下,如果返回true,就删除;如果返回false,就保留。
代码实现
public class Demo01 { public static void main(String[] args) { Collection
Collection的遍历 迭代器
集合的专用遍历方式
Iterator
iterator() 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到
Iterator中的常用方法
boolean hasNext() 判断当前位置是否有元素可以被取出
E next() 获取当前位置的元素,将迭代器对象移向下一个索引位置
代码实现
public class Demo02 { public static void main(String[] args) { //创建集合对象 Collection
迭代器中删除的方法
void remove(): 删除迭代器对象当前指向的元素
public class Demo02 { public static void main(String[] args) { ArrayList
增强for循环
它是JDK5之后出现的,其内部原理是一个Iterator迭代器
实现Iterable接口的类才可以使用迭代器和增强for
简化数组和Collection集合的遍历
单列集合可以使用迭代器与增强for,但是双列集合不能直接使用,因为它的底层没有实现Iterator接口。
代码实现
public class Demo1 { public static void main(String[] args) { ArrayList
注意 :
如果在for中这样子写
for(String str : list){
str = "q";
System.out.println(str);
// q ...
}
对于集合中的元素是没有影响的!请看下图:
下回分解
Java类集框架-Listhttps://blog.csdn.net/weixin_43715214/article/details/122780664