集合框架之Connection(马士兵教育视频教程总结笔记)

2023-11-20

when to use:

当不知道程序运行时会需要多少对象,或者需要以更复杂的形式来储存对象时,可以使用java集合框架。(e.g. 假定学员数)
在这里插入图片描述

  • 接口(4个:Collection\ List\ Set \ Map)
    : (1)Collection单值
    : List : ArrayList\ LinkedList (子类实现)
    在这里插入图片描述
    : Set : HashSet \ TreeSet
    : (2)Map : 键-值对形式(key-value)
    : HashMap
    : TreeMap
    工具类Collections提供了对集合进行排序、遍历等多种算法实现
  • 具体类
  • 算法
  • Vector(也是List接口的一个子类实现,数据结构也为数组)同ArrayList的区别:
    在这里插入图片描述
    (1)在这里插入图片描述在这里插入图片描述
    (2)ArrayList线程不安全,但效率高;

JUC: java.util.concurrent —— 并发时用到

Collection接口:
子接口:
List(ArrayList,LinkedList,不唯一,有序),
Set(HashSet,TreeSet,唯一,无序,无get(),set()方法)
常用的api方法:
增 add(), addAll()
删 remove(), clear()(清空,不删除对象), removeAll()
改 set(index, element)
查 contains(), get(), subList(),ListIterator…
注意:每个方法来源于哪个父类

  • ArrayList——在这里插入图片描述
  • LinkedList——在这里插入图片描述在这里插入图片描述
  • HashSet——
    在这里插入图片描述
  • TreeSet——
    在这里插入图片描述

迭代器:

Iterator:(不能边更改边遍历,并发操作错误,采用ListIterator可避免——通过cursor、lastRet=-1实现)
在这里插入图片描述
Iterable: 接口。
增强for循环
(推荐,因while内的变量作用域为类,而for内的变量作用域仅循环内部)

比较器:

当存储某些元素的时候,需要对集合中的元素进行排序,此时需要比较器。

  • 内部比较器:Comparable
  • 外部比较器:Comparator (推荐)

泛型:

<K,E,V> // K_ key , E_elements , V_values

  • 泛型类
  • 泛型接口
  • 泛型方法
  • 泛型上下限(工作中使用较少,但看源码会经常看到,需理解)

数据结构:

ArrayList
数据结构为数组(遍历速度快,但删除、插入慢:前面/后面的对象需进行移位)
在这里插入图片描述

LinkedList
数据结构为链表(单向列表,或双向列表,删除、插入快,但遍历慢)
(1)单向链表——(遍历需挨个往下)在这里插入图片描述
(2)双向链表——可以从前往后也可以从后往前在这里插入图片描述

哈希表:(链表+数组形式,头插法: 图片转载
哈希表
红黑树:
在这里插入图片描述

个人理解:

查找多个数据时——引入倒置的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集合框架之Connection(马士兵教育视频教程总结笔记) 的相关文章

  • modbus之crc16计算代码

    这边提供两种方式 第1种是查表法方式 速度会快一点 但是需要多占用一些空间 第二种是纯计算方式 速度相对第一种会慢一点 但是比较省空间 代码如下 static const uint16 t crc table 0X0000 0XC0C1 0
  • K8S的DaemonSet部署和安全删除

    1 部署方式 部署DaemonSet 需要执行以下步骤 创建DaemonSet配置文件 您可以使用YAML或JSON格式的文件描述DaemonSet的规格 包括容器镜像 容器端口 Pods标签 节点选择器等 使用kubectl命令将配置文件
  • Tomcat的简单使用

    简单使用Tomcat 1 Tomcat Web容器 1 1安装 1 2 Tomcat文件夹功能讲解 3 启动Tomcat 4 发布网页 1 Tomcat Web容器 Tomcat是用来发布前端站点或者后端程序的 1 1安装 Tomcat 的
  • Collection集合类和Map接口各实现类详解

    Java的集合类 collection接口和Map 一 集合概述 集合 集合是java中提供的一种容器 可以用来存储多个数据 集合和数组既然都是容器 它们有啥区别呢 数组的长度是固定的 集合的长度是可变的 数组中存储的是同一类型的元素 可以
  • 职责链模式

    职责链模式 职责链模式概述 职责链模式解决的问题 角色分析 职责链模式优点 代码示例 源码中的职责链模式使用案例 业务与设计模式落地案例 职责链模式概述 职责链模式解决的问题 案例 一个贷款审批案例 假设贷款额度小于5万时由客户负责人审核放
  • Unity获取鼠标滚轮信息

    Unity获取鼠标滚轮信息 UGUI获取滚轮信息 Input获取滚轮信息 UGUI获取滚轮信息 UGUI关于鼠标滚轮信息的获取有一个专门的接口IScrollHandler用于接收滚轮事件 继承该事件之后便需要实现函数OnScroll 如下
  • 解决Port 8080 is already in use

    前言 在运行项目的时候报错显示端口号已被占用 如下图 解决方法 第一步 win R打开 输入cmd进入命令窗口 第二步 输入netstat ano回车 找到对应的进程PID为14472 第三步 输入命令tasklist回车 找到对应的进程名
  • ==,Object.equals(), Objects.equals(), Objects.deepEquals 使用注意

    相等判断时需注意 基本数据类型之间 可使用 包装类型之间尽量不要使用 包装类数值超过 127 128 引用类型地址不同 在 127 128之间时 翻阅底层源码发现 使用的是缓存的值 使用Object equals 做内容比较时 把常量 或可
  • Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转 (根骨骼动画)的问题

    Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置 方向偏转 根骨骼动画 的问题 目录 Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置 方向偏转 的问题 一 简单介绍 二 实现原理 三 效果预
  • 析构函数和虚函数的用法和作用

    析构函数和虚函数的用法和作用 1 析构函数 1 1 特点 2 虚函数 2 1 功能 2 2 使用方法 2 3 纯虚函数 2 3 1 意义 1 析构函数 析构函数是特殊的类函数 没有返回类型 没有参数 不能随意调用 也没有重载 在类对象生命期
  • get和post区别

    get参数通过url传递 post放在post是放在请求头的包体 request body 中 因为参数直接暴露在url中 get比post更不安全 所以不能用来传递敏感信息 get请求在url中传递的参数是有长度限制的 get提交的数据最
  • vsftpd主动模式和被动模式

    vsftpd主动模式和被动模式 主动模式 PORT 所谓主动模式 指的是FTP服务器主动去连接客户端的数据端口来传输数据 其过程具体来说就是 客户端从一个任意的非特权端口N N gt 1024 连接到FTP服务器的命令端口 即tcp 21端
  • C++ 基础编程 路灯问题

    问题描述 V先生有一天工作到很晚 回家的时候要穿过一条长l的笔直的街道 这条街道上有n个路灯 假设这条街起点为0 终点为l 第i个路灯坐标为ai 路灯发光能力以正数d来衡量 其中d表示路灯能够照亮的街道上的点与路灯的最远距离 所有路灯发光能
  • yml基本语法

    1 基本语法 格式要求 k 空格 v 表示一对键值对 空格必须有 以空格的缩进来控制层级关系 只要是左对齐的一列数据 都是同一个层级的 server port 8081 path hello 1 2 3 属性和值也是大小写敏感 2 值的写法
  • wchar_t 、UTF-8、UTF-16的转换方法

    继续编码转换 Unicode 有两套编码集 UCS 2 和 UCS 4 Windows 的内部其实是用的 UCS 2 标准 并用 UTF 16 来实现 而非 Windows 系统大多采用了 UTF 8 实现 大家都知道在windows上wc
  • 数组里面对象去重的3种方法

    数组里面对象去重的方法挺多的 下面列了几种方法任君选择 下面是将要过滤的数据 将arr里面id重复的数据去掉 下面方法中用的arr都是这组数据哦 var arr id 1 name 周瑜1 id 3 name 王昭君1 id 2 name
  • ssh-keygen 常用命令与参数

    ssh keygen 常用命令与参数 生成密钥 默认生成 2048 位 RSA 密钥 ssh keygen 生成 4096 位 RSA 密钥 ssh keygen t rsa b 4096 生成 521 位 ECDSA 密钥 ssh key
  • 软件测试入门知识,jmeter系统基础课程———带你由浅入深学性能(完)

    软件测试知识持续更新中 性能测试常见问题 简述性能测试流程 如何确定系统最大负载 你们系统哪些地方 哪些功能 做了性能测试 你们的并发用户数是怎么确定的 你们性能测试什么时间执行 怎么分析性能测试结果 think time 的作用是什么 在
  • 1.1关于数据挖掘

    一 数据挖掘是什么 从技术层面讲 数据挖掘指从大量数据中提取潜在有用的信息和知识的过程 从商业层面讲 数据挖掘是一种对大量业务数据进行抽取 转换 分析和建模处理 并从中提取辅助商业决策的关键数据的商业信息处理技术 二 数据挖掘与传统传统数据
  • 数组--二维数组

    JAVA的二维数组 二维数组 在二维数组中的每一个元素中都是一个一维数组 意思就是两个一维数组相嵌套而成的数组 二维数组的声明 有一下两种 int a int a 在声明时 一般推荐第一种情况 方便代码阅读 二维数组在创建时也要给定数组的长

随机推荐

  • android调用系统指纹设置页面录入指纹

    在做指纹登录时 有时候会遇到设备并未录入指纹 需要提示用户去开启 如果需要自动跳转到系统的指纹设置页面 录入指纹 那就需要调用系统组件 由于google加入指纹支持是在6 0 而国内很多厂商很早便加入了指纹支持 所以在这方面碎片化很严重 需
  • 火影手游为什么服务器维护,火影忍者手游安装失败解决方法 游戏闪退进不去怎么办...

    本文4399阿尔法将告诉大家火影忍者手游安装失败的原因以及解决方法 还会告诉大家游戏闪退进不去怎么办等等 下面就跟着小编一起来看看吧 gt gt gt gt gt 更多游戏攻略 进入4399火影忍者手游专区 lt lt lt lt lt 问
  • 65nm芯片流片费用_每年流片超40款客户芯片,国内第一的IP供应商芯原科创板上市获受理...

    文 Lee 图源 网络 集微网消息 9月20日 上交所受理了芯原微电子 上海 股份有限公司 以下简称 芯原 科创板上市申请 芯原选择的上市标准为 科创板上市规则 2 1 2中的第 四 项 预计市值不低于人民币30亿元 且最近一年营业收入不低
  • vscode配置clangd和clang-format

    vscode安装和配置 如何安装和配置vscode以搭建c 开发环境 可以查看我的另一篇博客 Windows上最轻量的vscode C 开发环境搭建 在这篇博客中 详细介绍了如何安装vscode以及应该安装哪些插件 这里不再赘述 vscod
  • 第14届蓝桥杯C++B组省赛

    文章目录 A 日期统计 B 01 串的熵 C 冶炼金属 D 飞机降落 E 接龙数列 F 岛屿个数 G 子串简写 H 整数删除 I 景区导游 J 砍树 今年比去年难好多 Update 2023 4 10 反转了 炼金二分没写错 可以AC了 U
  • 1051. 复数乘法 (15)

    复数可以写成 A Bi 的常规形式 其中A是实部 B是虚部 i是虚数单位 满足i2 1 也可以写成极坐标下的指数形式 R e Pi 其中R是复数模 P是辐角 i是虚数单位 其等价于三角形式 R cos P isin P 现给定两个复数的R和
  • 【机器学习】【逻辑回归】Logistic函数/Sigmoid函数的详细公式推导

    sigmoid函数的数学公式 sigmoid函数的因变量x取值范围是 到 但是sigmoid函数的值域是 0 1 不管x取什么值其对应的sigmoid函数值一定会落到 0 1 范围内 漂亮的logistic 曲线 sigmoid函数对应的图
  • Python timeit模块的使用

    Python timeit模块的使用 Python 中的 timeit 模块可以用来测试一段代码的执行耗时 如一个变量赋值语句的执行时间 一个函数的运行时间等 timeit 模块是 Python 标准库中的模块 无需安装 直接导入就可以使用
  • java readvalue_Java XmlMapper.readValue方法代碼示例

    本文整理匯總了Java中com fasterxml jackson dataformat xml XmlMapper readValue方法的典型用法代碼示例 如果您正苦於以下問題 Java XmlMapper readValue方法的具體
  • CUDA流任务并行

    CUDA流表示一个GPU操作队列 并且该队列中的操作将以指定的顺序执行 可以将每个流视为GPU的一个任务 并且这些任务可以并行执行 即相同流顺序执行 不同流并行执行 不同流并行执行时不同流所要执行的任务要没有依赖关系 当不手动创建流时 cu
  • Jmeter篇之beanshell加密和解密(SM2)

    需求 明文传参 对请求进行加密调用后台接口 后端返回密文响应结果 对返回结果进行解密 需求分析 1 参数明文填写入参 2 发送请求前对明文进行加密 加密后调用后台接口 3 后端返回密文响应结果 4 对响应结果进行解密 操作 1 打开jmet
  • Latex各种矩阵的输入方法

    代码顺序同上顺序 导言区 documentclass ctexart usepackage amsmath 正文区 begin document begin Bmatrix 1 2 4 5 end Bmatrix begin matrix
  • openGLSL从0开始学习

    首先 找了些优秀的学习网站 openGLSL https learnopengl cn github io https www khronos org files opengles shading language pdf 双缓冲 Doub
  • saltstack使用指南:编写自己的模块代码

    saltstack编写自己的模块代码 1 saltstack远程执行的底层原理 2 执行模块的组成结构 3 编写自己的执行模块函数 4 交叉调用salt自带的模块函数 5 实战编写一个完整的模块 一 saltstack远程执行的底层原理 s
  • [Vue warn]: Error in created hook: "TypeError: handler.call is not a function"

    此问题为调用中生命周期钩子函数引起来的错误 解决办法为 生命周期钩子函数 是否有未定义方法 还是 声名了空的钩子函数 另外
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • PowerVR开发工具和SDK 2020 Release 1发布啦!

    期待已久的PowerVR开发工具和SDK 2020年的第一个发行版本终于面市了 尽管面临来自世界各地的挑战 DevTech团队一直在努力工作 为整个市场提供最好的图形开发工具 任何想体验我们开发工具最新版本的用户请直接点击下方链接 下载Po
  • C语言打印数据的二进制格式-原理解析与编程实现

    问题引出 C语言中 在需要用到16进制数据的时候 可以通过printf函数的 x格式打印数据的16进制形式 在某些位标记 位操作的场合 需要用到2进制格式的数据 但printf函数不能输出2进制格式 虽然可以通过使用itoa或 itoa的方
  • 集合框架之Connection(马士兵教育视频教程总结笔记)

    when to use 当不知道程序运行时会需要多少对象 或者需要以更复杂的形式来储存对象时 可以使用java集合框架 e g 假定学员数 接口 4个 Collection List Set Map 1 Collection单值 List