1.Collection集合

1.Collection集合(单身汉集合)

1. List

  1. ArrayList(单身汉集合)
  2. LinkenList
    2. Set
  3. HashSet(重点掌握)
  4. LinkenHashSet
  5. TreeSet

2.Collection集合概述和基本使用

  1. Collection集合概述

    1. 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素。JDK不提供接口任何直接实现,它提供更具体的子接口(如Set和List)实现。
  2. Collection集合基本使用

    Collection<元素的类型> col = new ArrayList<>();
    

3.Collection集合的常用方法

方法名 说明
boolean add(E a) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
void clear() 清空集合中的元素
boolean isEmpty() 判断集合是否为空(如果为空则返回true)
int size() 集合的长度,也是集合的元素个数
boolean contains(object 0) 判断集合中是否有指定的元素

4Collection集合的遍历

迭代器的介绍

​ 迭代器,集合的专用遍历方式

​ Iterator iterator();返回此集合中的元素的迭代器,通过集合的iterator()方法得到迭代器是通过集合的Iterator();所以我们说它是依赖于集合而存在的。

Collection集合的遍历

public static void main(String[] args) {Collection<String> coll = new ArrayList<>();coll.add("球姐");coll.add("宝宝");coll.add("宋吉吉");Iterator<String> it = coll.iterator();while (it.hasNext()) {String next = it.next();System.out.println(next);}System.out.println(coll);}

5.集合使用步骤图解

  1. 创建集合(该如何选择集合)
  2. 添加元素
    1. 创建元素
    2. 将元素添加到集合中
  3. 遍历集合
    1. 迭代器

      1. 获取迭代器
      2. 使用hasNext()方法判断是否有元素
      3. 使用next()方法来获取元素
    2. 增强for
    3. 普通for

6集合的案例:

/*
* 案例需求创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
*/
public class CollectionDemo03 {public static void main(String[] args) {// 创建集合 ArrayList// ArrayList<Student> list = new ArrayList<>();Collection<Student> list = new ArrayList<>();list.add(new Student("蓉蓉",39));list.add(new Student("宋吉吉",40));list.add(new Student("陶吉吉",35));// 迭代器Iterator<Student> it = list.iterator();while (it.hasNext()) {Student stu = it.next();System.out.println(stu);}}
}

2.LIst集合

1.List集合概述和特点:

  1. 有序:存储和取出的顺序是一样的
  2. 可重复:可以存储重复的元素
  3. 有索引:提供了整数的索引

2.List集合的特有方法:

方法名 说明
void add() 添加元素
remove() 删除元素
set() 修改元素
get() 返回指定索引处的元素

3.List集合的案例

案例需求
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

public class CollectionDemo03 {public static void main(String[] args) {// 创建集合 List<Student> list = new ArrayList<>();list.add(new Student("蓉蓉",39));list.add(new Student("宋吉吉",40));list.add(new Student("陶吉吉",35));// 迭代器Iterator<Student> it = list.iterator();while (it.hasNext()) {Student stu = it.next();System.out.println(stu);}}
}

4.并发修改异常(了解出现的原因)

  1. 出现的原因

    1. 预期修改的值跟实际修改的值不相符,就会报并发性异常ConcurrentModificationException
  2. 解决的方案:
    1. 用ListIterator
    2. 不用Iterator
    3. 同普通for循环

5.ListIterator介绍

ListIterator介绍:

​ 通过List集合的ListIterator()方法得到的,所以说它是List集合特有的迭代器

​ 用于允许程序眼沿任何一方向遍历的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置。

6.增强for循环

  1. 增强for循环作用

    1. 方便遍历数组和集合
  2. 增强for格式

    1. for(元素的数据类型 变量名:数组|集合对象){

    }

    7.集合的遍历

    • List集合存储学生对象三种方式遍历【应用】

      • 案例需求
        创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
         public class ListTest {public static void main(String[] args) {// 创建集合 ArrayListList<Student> list = new ArrayList<>();list.add(new Student("蓉蓉", 39));list.add(new Student("宋吉吉", 40));list.add(new Student("陶吉吉", 35));// 迭代器Iterator<Student> it = list.iterator();while (it.hasNext()) {Student stu = it.next();System.out.println(stu);}System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");// 普通forfor (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}
      }
      

7.数据结构

  1. 总结:

      1. 特点:先进后出
      2. 举例:弹夹
    1. 队列
      1. 特点:先进先出
      2. 举例:排队
    2. 数组
      1. 特点:查询快,增删慢
    3. 链表
      1. 特点:查询慢,增删快
    4. 哈希表(数组+链表+红黑树)
      1. 特点:查询快,增删慢

8.List集合子类的特点

  1. ArrayList集合add()

    1. 抵偿数据结构:数组,动态数组(由JDk维护这个数组 插入元素 是,扩展数组长度)
    2. 特点:查询快,增删慢。
  2. LinkedList集合
    1. 底层数据结构:双向链表
    2. 特点:查询慢,增删快

9.集合的案例

ArrayList集合存储学生对象三种方式遍历【应用】

  • 案例需求
    创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
  public class ArrayListTest {public static void main(String[] args) {// 创建集合 ArrayList// ArrayList<Student> list = new ArrayList<>();LinkedList<Student> list = new LinkedList<>();list.add(new Student("蓉蓉", 39));list.add(new Student("宋吉吉", 40));list.add(new Student("陶吉吉", 35));list.add(0, new Student());list.remove(list.size() - 1);list.removeLast();// 迭代器Iterator<Student> it = list.iterator();while (it.hasNext()) {Student stu = it.next();System.out.println(stu);}System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");// 普通forfor (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");//    增强for 数组|集合对象名.for + 回车for (Student student : list) {System.out.println(student);}// iter + 回车for (Student student : list) {System.out.println(student);}}}

10.LinkedList集合的特有功能

特有方法

| * public void addFirst(E e) 在该列表开头插入指定的元素

* public void addLast(E e) 将指定的元素追加到此列表的末尾

  * public   E   getFirst()      返回此列表中的第一个元素    * public    E   getLast()       返回此列表中的最后一个元素   * public    E   removeFirst()   从此列表中删除并返回第一个元素 * public    E   removeLast()    从此列表中删除并返回最后一个元素 |

Collection集合相关推荐

  1. Collection集合List、Set

    Collection集合,用来保存一组数据的数据结构. Collection是一个接口,定义了所有集合都应该包含的特征和行为 Collection派生出了两类集合 List和Set List接口:Li ...

  2. 5.Collection集合 List集合 泛型

    一.Collection集合 1.1 数组和集合的区别 相同点:都是容器,可以存储多个数据. 不同点: 数组的长度是不可变的,集合的长度是可变的. 数组可以存基本数据类型和引用数据类型:集合只能存引用 ...

  3. plsql 循环存储过程返回数据集合_Java基础(十五)——Collection集合、泛型 - 寒江雨

    Collection集合 集合概述 集合:集合是Java中提供的一种容器,可以用来存储多个数据 数组的长度是固定的,集合的长度是可变的 数组中存储的是同一种数据类型的元素,可以存储基本数据类型也可以存 ...

  4. Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin

    1.容器API的类图结构如下: JAVA的集合类是一种特别有用的工具类,它可以用于存储数量不等的多个对象,并可以实现常用数据结构,如栈,队列等,除此之外,JAVA集合还可用于保存具有映射关系的关联数组 ...

  5. Collection集合中的 contains 和 remove 使用深入——为什么要重写equals() ?

    引言 在Collection集合中: contains方法是判断一个集合里面是否包含指定元素,如果有则返回true: remove方法是从集合中删除指定元素的单个实例: 这两个方法看起很简单,用起来也 ...

  6. 1.14 Stream操作Collection集合

    使用Java 8新增的Stream操作Collection集合 Java 8 还新增了 Stream.IntStream.LongStream.DoubleStream 等流式 API,这些 API ...

  7. 1.13 Predicate操作Collection集合

    使用Java 8新增的Predicate操作Collection集合 Java 8 起为 Collection 集合新增了一个 removeIf(Predicate filter) 方法,该方法将会批 ...

  8. 1.12 foreach循环遍历Collection集合

    Java使用foreach循环遍历Collection集合 使用 Iterator 接口迭代访问 Collection 集合里的元素,除了这个方法之外,我们还可以使用 Java 5 提供的 forea ...

  9. 1.9 Lambda表达式遍历Collection集合

    Java使用Lambda表达式遍历Collection集合 Java 8 为 Iterable 接口新增了一个 forEach(Consumer action) 默认方法,该方法所需参数的类型是一个函 ...

  10. collection集合 地址_java.util包下的集合

    Java 集合可分为 Collection 和 Map 两种体系 1.Collection接口:单列数据,定义了存取一组对象的方法的集合 List:元素有序.可重复的集合 Set:元素无序.不可重复的 ...

最新文章

  1. 新建本地仓库,同步远程仓场景,出现git branch --set-upstream-to=origin/master master 解决方法...
  2. UVA 10603 Fill
  3. 设计printf调试宏
  4. net的retrofit--WebApiClient库
  5. ZooKeeper的十二连问,你顶得了嘛?
  6. python实现猜数字小游戏
  7. 更改当前数据库的所有者
  8. CodeForces - 1610B Kalindrome Array
  9. keras 双向LSTM 简单示例
  10. 关于微信退款出现错误代码:52的解决方法【转】
  11. C++ - 派生类访问模板基类(templatized base class)命名
  12. 命令行参数解析函数 getopt
  13. 国内博客搬家工具大全
  14. 【零基础Eviews实例】01异方差的检验与修正
  15. 320240带中文字库液晶显示屏
  16. DS1302时钟芯片的使用
  17. 保研心得(华东师范、东南和浙软)
  18. Tightvncserver 连接树莓派的方法及步骤
  19. 计算机怎么快捷截图桌面,电脑截屏的快捷键是什么
  20. postman进行批量测试的步骤

热门文章

  1. 物尽其用——小米手机2/2S合并分区刷机方法
  2. 程序员常用mysql命令
  3. “沙箱机制”是什么?
  4. 《数据结构》-第四章 串、数组和广义表(习题)
  5. java基础入门篇(1)
  6. Linux设置支持中文
  7. 木星协定_木星笔记本简介
  8. python怎么利用数据成像_第一张黑洞照片全靠VLBI,这个Github项目教你用Python实现...
  9. CV基础(图像预处理)
  10. 奉劝大家不要再用刷流量软件刷新浪博客等级了