集合Collection概述、体系特点

本文主要介绍Java集合框架中的Collection接口,包括为何使用集合、集合体系的特点、泛型支持、常用方法以及集合的遍历方式,如迭代器、增强for循环和Lambda表达式。此外,还强调了集合只能存储引用数据类型,并提供了遍历集合的各种方法的总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合概述

本文内容基于JDK1.8

1.为什么用集合?集合更像气球

  • 不知道存放对象的个数

  • 与数组相比更加实用灵活

  • 更加面向对象,非常适合做元素的增删操作

  • 注意:集合中只能存储引用数据类型(String),如果要存储基本类型(如int)数据可以选用包装类(如Integer)。

    img

    2.集合适合的场景

    • 数据的个数不确定,需要进行增删元素的时候。

    3. 集合总结

    3.1 数组和集合的元素储存的个数问题
    • 数组定义后类型确定,长度固定。
    • 集合类型可以不固定,大小是可变的。
    3.1 数组和集合储存元素的基本问题
    • 数组能储存基本类型int和引用类型的数据。
    • 集合只能存储引用数据类型的数据。
    3.3数组和集合适合的场景
    • 数组适合做数据格式和类型确定的场景。
    • 集合适合做,数据个数不确定,且要做增删改查的场景。

4. 集合的体系特点

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NsEoyoxx-1642433662495)(image/image-20220117231051248.png)]

5.集合对于泛型的支持

  • 集合都是支持泛型的,可以再编译阶段约束集合只能操作某种数据类型

  • 格式如下

  • Collection< String> lists = new ArrayList<>();

  • Collection< Integer> lists = new ArrayList<>();//储存基本类型使用包装类(不把它当基本数据类型,把它当对象)

5.1总结

1.集合的代表是?

  • Collection接口

2.Collection集合分了哪儿大常用集合体系?

  • List系列集合:添加的元素是有序、可重复、有索引的
  • Set系列集合:添加的元素是序、重复、索引的

3.如何约定集合存储书记的类型,需要注意什么?

  • 集合支持泛型
  • 集合和泛型不支持基本类型(如int),只支持引用数据类型。

6.Collection接口常用方法

Collection 接口用于表示任何对象或元素组。常规方式处理一组元素时,就使用这一接口。Collection 在前面的大图也可以看出,它是List和Set 的父类。并且它本身也是一个接口。它定义了作为集合所应该拥有的一些方法。如下:

add(E e)确保此 collection 包含指定的元素(可选操作)
clear()移除此 collection 中的所有元素(可选操作)
contains(Object o)如果此集合包含指定的元素,则返回 true
isEmpty()如果此集合不包含元素,则返回 true
iterator()返回此集合中的元素的迭代器
remove(Object o)从该集合中删除指定元素的单个实例(如果存在)(可选操作)
size()返回此集合中的元素数。
toArray()返回一个包含此集合中所有元素的数组

7.集合的遍历

7.1 迭代器遍历概述
  • 遍历就是一个一个的把容器中的元素访问一遍。

  • 迭代器在Java中的代表是Iterator,迭代器是结合的专用遍历方式。

  • Iterator< String > it = List.i(这个i是小写)terator(); //其中List是一个集合对象

    7.1.1迭代总结

    1.迭代器如果取元素越界会出现什么问题?

    • 会出现NoSuchElementException异常。

    2.迭代器的默认位置在哪?

    • Iterator< E>iterator(): 得到迭代器对象,默认指向当前集合的索引0。

​ 3.迭代器不能遍历数组

7.2 增强for循环

  • 增强for循环:既可以遍历集合,也可以遍历数组(1.增强for可以遍历哪些容器?)

  • JDK5之后出现的,内部原理是一个Iterator迭代器,遍历集合相当于是迭代器的简化写法。

  • 实现Iterator接口的类才可以使用迭代器和增强for,Collection接口已经实现Iterator接口

  • (2.增强for的关键是记住它的遍历格式)在这里插入图片描述
    在这里插入图片描述

  • 问题,for和forEach(增强for循环)有什么区别

    • forEach中不能修改元素(添加或删除操作),适用于进行数组或集合的遍历

    • for比较灵活,可以增改元素,for在复杂循环中效率高。

7.3 Lambda表达式遍历集合

  • 得益于JDK 8开始的新技术Lambda表达式,提供了一种更简单、更直接的编辑集合的方式。
    • Collection结合Lambda遍历的API
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z7dAOTvN-1642515019456)(image/image-20220118182833633.png)]

8.集合中存储的是元素的什么信息?

  • 集合中存储的是元素对象的地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值