首页 > 其他分享 >集合

集合

时间:2022-10-12 19:00:44浏览次数:44  
标签:遍历 迭代 元素 Collection boolean 集合

一、集合

1.1 简介

  1. 概念:用于存储一组(多个)数据的容器(集合)
  2. 数组与集合比较
    A. 数组长度是固定的(String) 集合的长度是可变(StringBuffer)
    B. 数组既可以存基本数据类型也可以存引用数据类型 集合只能存储引用数据类型的数据
  3. 分类
    A. 单列集合Collection 每一个元素都是独立的单元
    B. 双列集合Map 以键(key)值(value)对的形式来存储 以组为单元存储 丈夫==>妻子

1.2 Collection

1.2.1 简介
A.Collection 层次结构 中的根接口 ==>单列集合根接口
B.它提供更具体的子接口(如 Set 和 List)实现
C.子类
1.2.2 常用方法
方法名称 方法描述
boolean add(E e) 向集合添加元素(末尾)
void clear() 移除此 collection 中的所有元素
boolean contains(Object o) 如果此 collection 包含指定的元素
boolean isEmpty() 如果此 collection 不包含元素,则返回 true
Iterator iterator() 返回在此 collection 的元素上进行迭代的迭代器
boolean remove(Object o) 从此 collection 中移除指定元素
int size() 返回此 collection 中的元素个数
Object[] toArray() 将集合转换为数组
1.2.3 带all方法
方法名称 方法说明 方法返回值 col1集合 col2集合
boolean addAll(Collection<? extends E> c) 小集合添加到大集合中 如果成功返回true 否则返回false 会发生改变 不会改变
boolean containsAll(Collection<?> c) 大集合是否完全包含小集合 大集合中元素完全包含小集合元素则返回true否则返回false 不会改变 不会改变
boolean removeAll(Collection<?> c) 大集合删除小集合元素 col1中的集合元素发生改变则返回true col1中去除两个集合交集部分 不会发生改变
boolean retainAll(Collection<?> c) 获取两个集合交集部分 col1集合中元素发生改变则返回true col1两个集合的交集部分 不会发生改变
1.2.4 Collection集合遍历方式
1.2.4.1 第一种遍历方式
A.将集合转换为数组进行遍历  Object[] toArray()
7.2.4.2 第二种遍历方式
A.获取迭代器 Iterator<E> iterator()  将集合转换为迭代器
方法名称 方法描述
boolean hasNext() 用于判断是否有下一个元素
E next() 返回迭代的下一个元素
void remove() 删除元素

迭代器遍历原理

  1. 将集合转换为迭代器
  2. 将指针指向-1的位置
  3. 将指针往后移动一位
  4. 获取当前指针指向的数据
1.2.4.3 第三种遍历方式
1.使用增强for循环遍历
2.语法:
   for(集合或者数组的数据类型 变量名 :需要遍历的集合或者是数组) {
        每次获取这个变量名就是集合或者数组中每一个元素
   }
3.注意点:
    增强for循环底层也是使用迭代器来进行遍历

1.3 List

1.3.1 简介
1.有序的  有索引 存与取元素的顺序是一致
2.列表通常允许重复的元素 
3.允许多个 null 元素
4.总结:有序(有索引) 可重复 设置 null
5.实现类
1.3.2 常用方法
方法名称 方法描述
void add(int index, E element)增 在列表的指定位置插入指定元素
E get(int index)查 返回列表中指定位置的元素
E remove(int index)删 移除列表中指定位置的元素
E set(int index,E element)修 用指定元素替换列表中指定位置的元素
1.3.3 集合第四种遍历方式-普通for循环
1.3.4 List-ListIterator
方法名称 方法描述
ListIterator listIterator() 返回此列表元素的列表迭代器
boolean hasPrevious() 判断是否有上一个元素
E previous() 获取集合中前一个元素
void add(E e) 添加元素
1.3.5 ConcurrentModificationException -并发异常
1.产生问题原因:
   使用迭代器遍历 使用list集合的方法来操作数据 使用list集合的方法操作数据的时候
   迭代器并且不能够检测到操作了数据 所以就会产生并发异常 
2.解决问题:
   A.使用迭代器遍历 使用迭代器操作数据
   B.使用集合方式遍历 使用集合操作数据

1.4 ArrayList

1.4.1 简介
A.ArrayList是List接口的实现类
B.ArrayList底层是以数组的方式进行存储
    数组数据结构存储特点: 查询快 增删慢
C.此实现不是同步的 在多线程中是不安全
1.4.2 数据结构-数组结构
1.4.2 数据结构-栈结构
1.4.3 数据结构-队列

标签:遍历,迭代,元素,Collection,boolean,集合
From: https://www.cnblogs.com/wyzel/p/16785606.html

相关文章