当前位置: 首页 > news >正文

day34 集合总结

集合总结

一、概述

  1. 作用:存储对象的容器,代替数组的,使用更加的便捷

  2. 所处的位置:java.util

  3. 体系结构

二、Collection

  1. 内部的每一个元素都得是引用数据类型

  2. 常用方法

    • add(Object o) 添加元素

    • addAll(Collection c) 将指定集合中的所有元素存入到当前集合

    • remove(Object o) 移除元素

    • removeAll(Collection c) 删除当前集合中包含指定集合中的所有元素

    • isEmpty() 判断集合是否为空集合

    • size() 返回集合中元素的个数

    • clear() 清空集合

    • contains(Object o) :判断集合中是否包含指定的元素

    • containsAll(Collection c) 判断当前集合是否包含指定集合中的所有元素

三、List

  1. List是Collection下的一个子接口

  2. 特点:有序,可重复,有下标

  3. 常用方法

    • add(int index,Object) 将指定元素添加到当前集合指定的位置

    • remove(int index) 删除当前集合指定位置上的元素

    • get(int index) 获取当前集合中指定位置上的元素

    • set(int index, Object o) 将当前集合中指定位置上的元素替换为指定的元素

    • List subList(int a,int b) 截取当前集合中的元素获取一个子集、

四、List接口的实现类

(一)ArrayList(重点)

  1. 特点:底层封装了一个数组用于存储数据,数组默认长度为10

  2. 查询快,增删慢

  3. JDK1.2提供的

  4. 线程不安全

(二)LinkedList

  1. 特点:底层封装了链表用于存储数据,

  2. 增删快,查询慢,首尾操作极快

  3. JDK1.2提供

  4. 线程不安全

(三)Vector(了解)

  1. 内部封装一个数组用于存储数据

  2. 查询快,增删慢

  3. JDK1.0提供,最原始的集合

  4. 线程安全的

  5. Stack(栈)继承了Vector

五、遍历集合

  1. for循环遍历

  2. 新循环,增强for循环

  3. 迭代器(iterator)遍历

    • boolean hashNext() 问,是否有下一个元素

    • E next() 取,获取下一个元素

    • void remove() 删 删除当前元素

  4. forEach方法遍历 结合了Lambda表达式

六、Collections (类)

  1. java.util.Collections 是一个集合工具类

  2. 相关方法

    • Collections.sort(List list) 将集合进行升序排序

    • Collections.sort(List list, Comparator com) 自定义排序

    • Collections.reverse(List list) 将集合元素进行反转

七、Set接口

  1. 也是Collection下的子接口

  2. 特点:无序,无下标,元素不可重复

  3. 常用方法:Set的常用方法基本都是继承自Collection

八、Set接口的实现类

(一)HashSet

  1. 特点: 无序,不重复,无下标

  2. 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry

  3. 去重机制:hashCode()方法 + equals()方法

(二) LinkedHashSet

  1. 特点:不能重复,无下标 ,但是有序(元素插入数据顺序是有序的)

  2. 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry

  3. 去重机制 :hashCode()方法 + equals()方法

(三)TreeSet

  1. 特点:不能重复,无下标,有序(可以自动对集合中存入元素进行自然排序<升序>,元素必须实现Comparable接口)

  2. 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry,当链表中元素过多时,会通过二叉树进行排序

  3. 去重机制:根据Comparable接口中的compareTo()方法,方法返回值去过为0则表示对象相同

  4. compareTo() 比较器:

    • 返回值大于0 升序

    • 返回值等于0 相等,去重 ,

    • 返回值小于0 降序

九、Map

  1. 特点:一个元素由两个对象构成,分别作为key和value,无序,无下标,键不可以重复,值可以重复,通过键来访问

  2. 常用方法

    • put(Object key,Object value) :往Map中存放一个元素

    • get(Object key) 通过指定的key获取当前集合中的value

    • remove(Object key) 通过指定的key删除当前集合中的元素

    • size() 获取集合中元素的个数

    • keySet() : 将集合中所有的key转换成一个Set集合

    • entrySet(): 将集合中所有元素转换成一个Set集合

    • values(): 将集合中所有的value 转换成一个Collection集合

    • containsKey(Object key): 当前集合中是否包含指定的key

    • containsValue(Object value):当前集合中是否包含指定的value

  3. 遍历Map集合的四种方式

    • 遍历所有的key keySet()

    • 遍历所有的键值对 entrySet()

    • 遍历所有的value values()

    • forEach()遍历

十、Map接口的实现类

(一)HashMap(重点)

  1. 特点:无序,不重复,无下标

  2. 允许null作为key和value

  3. JDK1.2提供,线程不安全

  4. 去重机制:hashCode() + equals()

(二)LinkedHashMap

  1. 特点:不重复,无下标,有序(可以保存元素的插入顺序)

  2. 允许null作为key和value

  3. JDK1.2提供,线程不安全

  4. 去重机制:hashCode() + equals()

(三) TreeMap

  1. 特点:不重复,无下标,有序(对key自动排序(自然排序))

  2. 允许null作为key和value

  3. JDK1.2提供,线程不安全

  4. 元素必须实现Comparable接口,并重写compareTo方法

  5. 去重机制:根据compareTo方法,如果返回值为0则是同一个对象

(四)Properties

  1. 一般会创*.properties文件作为配置文件

  2. Prpperties是用于读取*.properties文件的

相关文章:

day34 集合总结

集合总结 一、概述 作用&#xff1a;存储对象的容器&#xff0c;代替数组的&#xff0c;使用更加的便捷 所处的位置&#xff1a;java.util 体系结构 二、Collection 内部的每一个元素都得是引用数据类型 常用方法 add(Object o) 添加元素 addAll(Collection c) 将指定集…...

【JAVA】 图书管理系统(javaSE简易版 内含画图分析) | 期末大作业课程设计

作者主页&#xff1a;paper jie 的博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVA》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…...

区块链技术与应用 - 学习笔记3【比特币数据结构】

大家好&#xff0c;我是比特桃。本系列笔记只专注于探讨研究区块链技术原理&#xff0c;不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划&#xff0c;在“加快数字发展 建设数字中国”篇章中&#xff0c;区块链被列为“十四五”七大数字经济重点产业之一&#…...

Ubuntu下高效Vim的搭建(离线版)

软件界面 可以看到界面下方有一些常用提示信息&#xff1a;文件路径、format、文件类型、光标所在的坐标(x,y)、进度条(百分比)、日期时间 会提示已定义的变量名词(快速补全) 搭建方法 下载资源文件 把Vim 和 .vimrc 拷贝到家目录下&#xff0c;并执行tar -xvf Vim 即可。 …...

阿里云和腾讯云2核2G服务器价格和性能对比

2核2G云服务器可以选择阿里云服务器或腾讯云服务器&#xff0c;腾讯云轻量2核2G3M带宽服务器95元一年&#xff0c;阿里云轻量2核2G3M带宽优惠价108元一年&#xff0c;不只是轻量应用服务器&#xff0c;阿里云还可以选择ECS云服务器u1&#xff0c;腾讯云也可以选择CVM标准型S5云…...

PYTHON(一)——认识python、基础知识

一、为什么要学习python&#xff1f; Python 被认为是人工智能、机器学习的首选语言&#xff0c;可以说是全世界最流行通用范围最广的语言&#xff0c;几乎可以完成所有的任务&#xff0c;像设计游戏、建网站、造机器人甚至人工智能等都广泛使用Python。 二、输出&#xff08;…...

Python 操作 Excel

之前看过一篇文章&#xff0c;说一个工作多年的老员工&#xff0c;处理数据时只会用复制粘贴到 Excel &#xff0c;天天加班工作还完不成&#xff0c;后来公司就招了一个会 Python 的新人&#xff0c;结果分分钟就处理完成。所以工作中大家经常会使用 Excel 去处理以及展示数据…...

21.添加websocket模块

这里默认读者了解websocket协议&#xff0c;若是还不了解可以看下这篇文章wesocket协议。 websocket主要有三个步骤&#xff0c;1通过HTTP进行握手连接&#xff0c;2进行双向通信&#xff0c;3.协商断开连接 第一步的握手连接需要HTTP&#xff0c;所以还需要使用到上一节讲解…...

Linux UDP编程流程

文章目录 UDP编程流程UDP协议无连接的特点UDP协议数据报的特点 UDP编程流程 UDP 提供的是无连接、不可靠的、数据报服务。服务器端和客户端没有什么本质上的区别。编程流程如下&#xff1a; socket()用来创建套接字&#xff0c;使用 udp 协议时&#xff0c;选择数据报服务 SOC…...

【opencv】多版本安装

安装opencv3.2.0以及对应的付费模块 一、安装多版本OpenCV如何切换 按照如下步骤安装的OpenCV&#xff0c;在CMakeLists.txt文件中&#xff0c;直接指定opencv的版本就可以找到相应版本的OpenCV&#xff0c;为了验证可以在CMakeLists.txt文件中使用如下指令输出版本验证&…...

webpack打包常用配置项

webpack打包配置项 参考链接 文件结构&#xff1a;最基础版 先安装 npm i webpack webpack-cli --dev 运行命令&#xff1a;npx webpack 进行打包 1. 配置webpack.config.js文件&#xff1a; const path require(path); module.exports {mode: development, // 开发环境 …...

回归预测 | MATLAB实现MPA-BiGRU海洋捕食者算法优化双向门控循环单元多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现MPA-BiGRU海洋捕食者算法优化双向门控循环单元多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现MPA-BiGRU海洋捕食者算法优化双向门控循环单元多输入单输出回归预测&#xff08;多指标&#xff0c;多图&a…...

selenium_webdriver自动化测试指南

目录 1 引言 4 1.1 目的.. 4 1.2 背景.. 4 1.3 参考资料.. 4 2 安装并引用Selenium2. 5...

红米Note12Turbo解锁BL刷入PixelExperience原生ROM系统详细教程

红米Note12Turbo的兄弟是国外POCO F5 机型&#xff0c;并且该机性价比非常高&#xff0c;国内外销量也还可以&#xff0c;自然不缺第三方ROM适配。目前大家心心念念的原生PixelExperience已成功发布&#xff0c;并且相对来说&#xff0c;适配程度较高&#xff0c;已经达到日用的…...

NoSQL之Redis配置与优化(一)

关系数据库与非关系型数据库 &#xff1a; ●关系型数据库&#xff1a; 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上&#xff0c;一般面向于记录。 SQL 语句&#xff08;标准数据查询语言&#xff09;就是一种基于…...

Boost搜索引擎

项目背景 先说一下什么是搜索引擎,很简单,就是我们平常使用的百度,我们把自己想要所有的内容输入进去,百度给我们返回相关的内容.百度一般给我们返回哪些内容呢?这里很简单,我们先来看一下. 搜索引擎基本原理 这里我们简单的说一下我们的搜索引擎的基本原理. 我们给服务器发…...

侧边栏的文章分类、热门文章和热门文章的展示(Go 搭建 qiucode.cn 之九)

早就有言,秋码记录 虽早已不是原来的面貌,但这终究是不防碍我们使用golang来搭建它。 而又为什么是使用golang呢?并非是其他编程语言呢?想必 时候回答【我为什么要学习 Go 语言(golang)】这个问题了 已经给出了答案! 当然,当初学习golang时,不单单是为了搭建一个博客应…...

LeetCode——贪心篇(二)

刷题顺序及思路来源于代码随想录&#xff0c;网站地址&#xff1a;https://programmercarl.com 134. 加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗…...

Linux find

1.find介绍 linux查找命令find是linux运维中很重要、很常用的命令之一&#xff0c;find用于根据指定条件的匹配参数来搜索和查找文件和目录列表&#xff0c;我们可以通过权限、用户、用户组、文件类型、日期、大小等条件来查找文件。 2.find语法 find语法 find [查找路径] …...

UE4实现断线重连功能

断线重连的整体逻辑是 设备离线后&#xff0c;根据需要决定是否保留pawn&#xff0c;还是设备重连后再重新生成一个&#xff0c;然后是断线重连时的验证方式&#xff0c;最后是playerstate重连后的属性保留 重载Playercontroller的PawnLeavingGame,这里是设备断线后&#xff0…...

nginx笔记

1. nginx 简介 nginx性能比apache强&#xff0c;体现 在io模型方面 76 Pv&#xff1a; UV : 不同浏览器是不同的UV GET 获取 POST 上传 HEAT 只看头 访问网站的流程 1.dns解析 2.cdn 3.tcp 4.web服务器 处理 建立连接 接收请求 处理请求 GET POST等 获取资源 构…...

动态库的制作和使用

动态库和静态库的工作原理 配置环境变量 方式1&#xff1a; 坏处&#xff1a;环境变量是临时的 方式2&#xff1a; 1 用户级别的配置&#xff1a; 进入到/home&#xff0c;找到.bashrc&#xff0c;进入 先去找到库的路径 然后再到.bashrc最后一行输入路径 使其生效 2 系统…...

AWS Glue Pyspark+Athena基础学习汇总

Pyspark 基础学习汇总篇🍎 一、AWS 架构 ① AWS Glue:工作平台,包括脚本的编写以及管理脚本的运行状态以及调度等(主要:数据库配置、ETL和数据转换脚本编写、调度) ② Amazon S3 数据湖(数仓):数据的存储 ③ Athena:(雅典娜)SQL直接编写查询工作台(会产生费用) ④ Q…...

智能合约安全新范式,超越 `require`和`assert`

智能合约安全新范式&#xff0c;超越 require_assert 摘要 不要只为特定的函数写 require 语句&#xff1b;为你的协议写 require 语句。函数遵循检查(requirements)-生效(Effects)-交互(INteractions)协议不变性(Invariants)或 FREI-PI 模式可以帮助你的合约更加安全&#x…...

【ESP-S3-BOX-Lite花屏问题】:Github下载源码(出厂源码factory_demo)编译调试到ESP-S3-BOX-Lite中出现花屏现象

项目场景&#xff1a; 最近拿到了一块乐鑫的 ESP-S3-BOX-Lite &#xff08;esp-box: ESP-BOX 是乐鑫信息科技&#xff09; 详细资料&#xff08;esp32_s3_box_lite&#xff09; 版本信息 ESP-BOX依赖的 ESP-IDF分支信息支持状态master> release/v5.1 commit id: 22cfbf3…...

Redis集群3.2.11离线安装详细版本(使用Ruby)

1.安装软件准备 1.Redis版本下载 Index of /releases/http://download.redis.io/releases/ 1.2gcc环境准备 GCC(GNU Compiler Collection,GNU编译器套件)是一套用于编译程序代码的开源编译器工具集。它的主要用途是将高级编程语言(如C、C++、Fortran等)编写的源代码转换…...

Ansible自动化运维

目录 前言 一、概述 常见的开源自动化运维工具比较 二、ansible环境搭建 三、ansible模块 &#xff08;一&#xff09;、hostname模块 &#xff08;二&#xff09;、file模块 &#xff08;三&#xff09;、copy模块 &#xff08;四&#xff09;、fetch模块 &#xff…...

MSTP + Eth-Trunk配置实验 华为实验手册

1.1 实验介绍 1.1.1 关于本实验 以太网是当今现有局域网LAN&#xff08;Local Area Network&#xff09;采用的最通用的通信协议标准&#xff0c;以太网作为一种原理简单、便于实现同时又价格低廉的局域网技术已经成为业界的主流。 本实验主要介绍了LAN网络中的Eth-Trunk技术…...

滚动菜单 flutter

想实现这个功能&#xff1a; 下面的代码可以实现&#xff1a; import package:flutter/material.dart;void main() > runApp(MyApp());class MyApp extends StatelessWidget {static const String _title Flutter Code Sample;overrideWidget build(BuildContext context)…...

javaee springMVC数字类型转换之通过注解的方式

po 在属性上增加注解 NumberFormat(pattern “#,#.#”) package com.test.pojo;import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.NumberFormat;import java.util.Date;public class Users {private int uid;pr…...

做淘宝客网站要不要备案/网络营销外包推广

一般比较流行的都是multiprocessing库来实现多线程&#xff0c;博主在看书的时候看到了有相关subpreocess的教程&#xff0c;使用思路相同&#xff0c;读者可自行选用。 multiprocessing实现多进程 简单实现 import multiprocessingdef Aptag_cap():(省略具体内容)........re…...

wordpress图片轮播插件/网站维护的内容有哪些

1、使用 gitlab 创建合并请求 master 合并到 branch_test --> compare branches and continue --> submit merge request 提示:合并冲突。 2、使用 idea 打开项目。 (1)执行:git fetch origin (2)切换到 master 分支,更新到最新版本。 (3)切换到 branch_test 分支,更…...

cm域名做网站/做电商必备的几个软件

利用数据库复制技术实现数据同步更新_MySQL复制的概念复制是将一组数据从一个数据源拷贝到多个数据源的技术&#xff0c;是将一份数据发布到多个存储站点上的有效方式。使用复制技术&#xff0c;用户可以将一份数据发布到多台服务器上&#xff0c;从而使不同的服务器用户都可以…...

国外网站 国内做镜像/seo公司发展前景

实现思想&#xff1a; 1、定义好成员全局私有变量&#xff0c;2、将事件监听器封装成一个方法&#xff0c;3、GUI图像界面写在构造方法里面&#xff0c;4、将事件监听器在构造方法中调用&#xff0c;5、在主方法中定义下拉框内容&#xff0c;用数组与二维数组实现给构造方法传参…...

广州网站建设.com/智能建站abc

一、Linux历史 Unix强大的根本原因&#xff1a; 1、简洁&#xff0c;仅仅提供几百个系统调用并且有一个非常明确的设计目的 2、文件对待所有东西&#xff0c;通过一套相同的系统调用接口来进行对数据和设备的操作 3、由于用C语言编写&#xff0c;移植性强 4、进程创建非常迅速&…...

ai怎么做网站用海报/培训如何优化网站

在Java中实现一个服务器可以使用ServerSocket类。它允许在特定端口上监听客户端的连接请求。 首先&#xff0c;需要创建一个ServerSocket对象并绑定到特定端口上。ServerSocket serverSocket new ServerSocket(port);...