java后端开发day31--集合进阶(一)-----Collection集合&List集合&数据结构1

(以下内容全部来自上述课程)

1.集合体系结构


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

Set系列集合:添加的元素是无序、不重复、无索引

2.Collection集合

Collection是单列集合的祖宗接口(不可直接创建对象),他的功能是全部单列集合都可以继承使用的。

1.方法

2.细节

1.添加元素

List:永远返回true,因为List系列是允许元素重复 的。

Set:添加元素不存在返回true,如果已经存在返回false,因为set系列不允许重复

2.删除元素

因为Collection里面定义的是共性的方法,所以不能通过索引进行删除。只能通过元素的对象进行删除。

方法会有一个布尔类型的返回值,成功true,失败false。

3.包含元素

底层是依赖equals方法 进行判断是否存在的。

所以,如果集合中存储的是自定义对象,也想通过contains方法来判断是否包含,那么在javabean类中一定要重写contains方法(alt+insert)。

3.遍历方式

1.迭代器遍历

迭代器不依赖索引

迭代器在Java中的类是Iterator ,迭代器是集合专用的遍历方法。


细节:

  1. 报错NoSuchElementException
  2. 迭代器遍历完毕,指针不会复位
  3. 循环中只能用一次next方法
  4. 迭代器遍历时,不能用集合的方法进行增加或者删除
    如果实在要删除,就用迭代器提供的remove方法进行删除。
2.增强for遍历

底层就是迭代器,为了简化代码书写。

JDK5以后出现的,内部原理就是一个Iterator迭代器。

所有的单列集合和数组才能用增强for进行遍历。

注意点:

s其实就是一个第三方变量,在循环的过程中依次表示集合中的每一个数据。

集合名字.for:快速生成方式

细节:

修改增强for中的第三方变量(s),不会改变集合原本中的数据。

3.Lambda表达式遍历

更简单、更直接的遍历集合的方式。

java 复制代码
Collection<String> coll = new ArrayList();
coll.add("zhangsan");
coll.add("lisi");
coll.add("wangwu");
coll.forEach(s -> System.out.println(s));

3.List集合

  • 有序:存和取的元素顺序一致
  • 有索引:可以通过索引操作元素
  • 可重复:存储的元素可以重复

1.特有方法

2.遍历方式

已学:迭代器遍历、增强for遍历、Lambda表达式遍历、普通for循环(因为List集合存在索引)

1.列表迭代器遍历

ps:和迭代器差不多,就多了两个不常用的方法。

2.五种遍历方式对比
  • 迭代器遍历:在遍历的过程中需要删除元素。
  • 列表迭代器:在遍历的过程中需要添加元素。
  • 仅仅想遍历:增强for或者lambda表达式。
  • 普通for:便利的时候想操作索引。

4.数据结构

计算机存储、组织数据的方式。

须知:

  1. 每种数据结构长什么样子?
  2. 如何添加数据?
  3. 如何删除数据?

1.栈

后进先出、先进后出。

2.队列

先进先出、后进后出

3.数组

4.链表

链表中的结点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址。
链表查询慢,无论查询哪个数据都要从头开始找。
链表的增删相对快。


相关推荐
kehua_gao4 分钟前
JMeter 5.6.3 jdk 1.8 不能录制https网页脚本的解决办法
java·jmeter·https
qq_447663055 分钟前
Spring学习之路:环境搭建、核心API与配置文件细节
java·后端·spring
tangweiguo030519877 分钟前
Java 和 Kotlin 实现 23 种设计模式:从理论到实践
android·java·kotlin
m0_4669238019 分钟前
【java】字符串存储的内存原理
java·开发语言
葵野寺21 分钟前
【Java--数据结构】优先级队列( PriorityQueue)
数据结构
狗头大军之江苏分军23 分钟前
移动端直播卡顿如何实时检测且告知用户
java·前端·后端
blammmp41 分钟前
Java EE 进阶:SpringBoot 配置⽂件
java·spring boot·java-ee
kfepiza43 分钟前
Java使用JDBC连接操作Sqlite 笔记250314
java·sqlite
我没想到原来他们都是一堆坏人44 分钟前
idea中lombok插件的安装与使用
java·开发语言