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

【java 13天进阶Day05】数据结构,List,Set ,TreeSet集合,Collections工具类

常见的数据结构种类

  1. 集合是基于数据结构做出来的,不同的集合底层会采用不同的数据结构。
  2. 不同的数据结构,功能和作用是不一样的。
  3. 数据结构:
    • 数据结构指的是数据以什么方式组织在一起。
    • 不同的数据结构,增删查的性能是不一样的。
    • 不同的集合底层会采用不同的数据结构,我们要知道集合的底层是基于哪种数据结构存储和操作数据的。这样才能知道具体场景用哪种集合。
  4. Java常见的数据结构即数据存储的常用结构:栈、队列、数组、链表和红黑树。
  5. a.队列(queue)
    • –先进先出,后进后出。
    • –场景:各种排队。叫号系统。
    • –有很多集合可以实现队列。
  6. b.栈(stack)
    • –后进先出,先进后出
    • – 压栈==入栈
    • – 弹栈 == 出栈
    • –场景:手枪的弹夹。
  7. c.数组
    • –数组是内存中的连续存储区域。
    • –分成若干等分的小区域(每个区域大小是一样的)
    • –元素存在索引
    • –特点:查询元素快(根据索引快速计算出元素的地址,然后立即去定位)
    • 增删元素慢(创建新数组,迁移元素)
  8. d.链表
    • –元素不是内存中的连续区域存储。
    • –元素是游离存储的。每个元素会记录下个元素的地址。
    • –特点:查询元素慢。
    • 增删元素快(针对于首尾元素,速度极快,一般是双链表)。
  9. e.红黑树(待看)
    1.
    2. 二叉树:binary tree永远只有一个根节点**,是每个结点不超过2个节点的树(tree) 。
    3. 查找二叉树,排序二叉树:小的左边,大的右边,但是可能树很高,性能变差。
    4. 为了做排序和搜索会进行左旋和右旋实现平衡查找二叉树,让树的高度差不大于
    1**。
    5. 红黑树(就是基于红黑规则实现了自平衡的排序二叉树):树尽量的保证到了很矮小,但是又排好序了,性能最高的树。
    6. 红黑树的增删查改性能都好。

ArrayList集合

  • List集合继承了Collection集合的全部功能,因为List集合多了索引,所以多了很多按照索引操作元素的功能。
  • ArrayList实现List集合底层基于数组存储数据的,查询快,增删慢!
  • public void add(int index, E element):将指定的元素,添加到该集合中的指定位置上。
  • public E get(int index):返回集合中指定位置的元素。
  • public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
  • public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回更新前的元素值。
  • 四种遍历:多了for遍历,因为有索引。
  • 使用多态List<String> lists = new ArrayList<>();

LinkedList集合
  • LinkedList也是List的实现类:底层是基于链表的,增删比较快,查询慢!!
  • LinkedList是支持双链表,定位前后的元素是非常快的,增删首尾的元素也是最快的。
  • public void addFirst(E e):将指定元素插入此列表的开头。
  • public void addLast(E e):将指定元素添加到此列表的结尾。
  • public E getFirst():返回此列表的第一个元素。
  • public E getLast():返回此列表的最后一个元素。
  • public E removeFirst():移除并返回此列表的第一个元素。
  • public E removeLast():移除并返回此列表的最后一个元素。
  • public E pop():从此列表所表示的堆栈处弹出一个元素。
  • public void push(E e):将元素推入此列表所表示的堆栈。
  • 放弃多态,使用多态无法调用子类新功能LinkedList<String> linkList = new LinkedList<>();

Set系列集合
  • Set系列集合是基于哈希表存储数据的,它的增删改查的性能都很好。
  • 只有HashSet同父类Set一致都是无序,不重复,无索引的。
  • 使用多态Set<String> sets = new HashSet<>();
  • 两个问题:
    • Set集合添加的元素是不重复的,是如何去重复的?
      • 对于有值特性的,Set集合可以直接判断进行去重复。
      • 对于引用数据类型的类对象,Set集合是按照如下流程进行是否重复的判断。
        1. Set集合会让两两对象,先调用自己的hashCode()方法得到彼此的哈希值(所谓的内存地址)a1.hashCode());
        2. 然后比较两个对象的哈希值是否相同,如果不相同则直接认为两个对象不重复。
        3. 如果哈希值相同,会继续让两个对象进行equals比较内容是否相同,如果相同认为真的重复了
          如果不相同认为不重复。
        4. 如果希望Set集合认为两个对象只要内容一样就重复了,必须重写对象的hashCode和equals方法。这会使得相同内容的对象哈希值一致且equals比较内容相同。(直接生产即可)
    • Set集合元素无序的原因是什么?
      • 根本原因是因为底层采用了哈希表存储元素。63%6=3
      • JDK 1.8之前:哈希表 = 数组 + 链表 + (哈希算法)
      • JDK 1.8之后:哈希表 = 数组 + 链表 + 红黑树 + (哈希算法)
      • 当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。

LinkedHashSet
  • 是HashSet的子类,元素是**“有序”** 不重复,无索引。
  • LinkedHashSet底层依然是使用哈希表存储元素的,但是每个元素都额外带一个链来维护添加顺序!!不光增删查快,还有序。
  • 缺点是多了一个存储顺序的链会占内存空间!!而且不允许重复,无索引。
  • 总结:
    • 如果希望元素可以重复,又有索引,查询要快用ArrayList集合。(用的最多)
    • 如果希望元素可以重复,又有索引,增删要快要用LinkedList集合。(适合查询元素比较少的情况,经常要首尾操作元素的情况)
    • 如果希望增删改查都很快,但是元素不重复以及无序无索引,那么用HashSet集合。
    • 如果希望增删改查都很快且有序,但是元素不重复以及无索引,那么用LinkedHashSet集合。

TreeSet集合
  • 不重复,无索引,按照大小默认升序排序!!
  • TreeSet集合称为排序不重复集合,可以对元素进行默认的升序排序。
  • 使用多态,在Set基础上基本无新增功能 Set<Double> scores = new TreeSet<>();
  • TreeSet集合自自排序的方式:
    • 1.有值特性的元素直接可以升序排序。(浮点型,整型)
    • 2.字符串类型的元素会按照首字符的编号排序。
    • 3.对于自定义的引用数据类型,TreeSet默认无法排序,执行的时候直接报错,因为人家不知道排序规则。
  • 自定义的引用数据类型的排序实现:定制排序的大小规则
    • a.直接为对象的类实现比较器规则接口Comparable,重写比较方法(拓展方式)。

      • 如果程序员认为比较者大于被比较者 返回正数。
      • 如果程序员认为比较者小于被比较者 返回负数。
      • 如果程序员认为比较者等于被比较者 返回0。
      • @Data
        public class Employee implements Comparable<Employee> {private String name;private double salary;private int age;// 重写了比较方法。// e1.compareTo(o)// 比较者:this// 被比较者:o// 需求:按照年龄比较@Overridepublic int compareTo(Employee o) {// 规则:Java规则// 如果程序员认为比较者大于被比较者 返回正数!// 如果程序员认为比较者小于被比较者 返回负数!// 如果程序员认为比较者等于被比较者 返回0!
        //        if(this.age > o.age){
        //            return 1;
        //        }else if(this.age < o.age){
        //            return -1;
        //        }
        //        return 0;return this.age - o.age;}} 
        
    • b.直接为集合设置比较器Comparator对象,重写比较方法。

      • 如果程序员认为比较者大于被比较者 返回正数。
      • 如果程序员认为比较者小于被比较者 返回负数。
      • 如果程序员认为比较者等于被比较者 返回0。
      • 使用匿名内部类 public TreeSet(Comparator<? super E> comparator)
      • Set<Employee> employees1 = new TreeSet<>(new Comparator<Employee>() {@Overridepublic int compare(Employee o1, Employee o2) {// o1比较者   o2被比较者// 如果程序员认为比较者大于被比较者 返回正数!// 如果程序员认为比较者小于被比较者 返回负数!// 如果程序员认为比较者等于被比较者 返回0!return o1.getAge() - o2.getAge();}});
        
  • 注意:如果类和集合都带有比较规则,优先使用集合自带的比较规则。

Collections工具类的使用

  • java.utils.Collections:是集合工具类
  • Collections并不属于集合,是用来操作集合的工具类。
  • Collections有几个常用的API:
    • -public static boolean addAll(Collection<? super T> c, T… elements):给集合对象批量添加元素!
      • List<String> names = new ArrayList<>();
      • Collections.addAll(names, "曹操", "小亮", "小王");
    • - public static void shuffle(List<?> list) :打乱集合顺序,只能打乱有序的List集合。
    • - public static void sort(List list):将集合中元素按照默认规则排序,默认升序。
    • - public static void sort(List list,Comparator<? super T> ):将集合中元素按照指定规则排序。
  • Set是哈希算法存储的,无法为其排序和升序。
  • 引用数据类型的排序
    • 字符串按照首字符的编号升序排序!
    • 自定义类型的比较方法API
      • - public static void sort(List list):
        • 将集合中元素按照默认规则排序。对于自定义的引用类型的排序人家根本不知道怎么排,直接报错!
        • 如果希望自定义的引用类型排序不报错,可以给类提供比较规则:Comparable。
      • - public static void sort(List list,Comparator<? super T>
        • 将集合中元素按照指定规则排序,自带比较器
        • //方式1 自定义比较器
          Collections.sort(oranges1, new Comparator<Orange>() {@Overridepublic int compare(Orange o1, Orange o2) {if (o1.getWeight() > o2.getWeight()) return -1;if (o1.getWeight() < o2.getWeight()) return 1;return 0;}});
          
        • //方式2 类实现Comparable接口
          @Data
          public class Orange implements Comparable {private String name;private double weight;private String price;@Overridepublic int compareTo(Object o) {Orange o2 = (Orange) o;if (this.weight > o2.weight) return 1;if (this.weight < o2.weight) return -1;return 0;}
          }
          
        • 注意:如果类有比较规则,而sort有比较器,优先使用比较器。

可变参数

  • 可变参数用在形参中可以接收多个数据。
  • 可变参数的格式:数据类型… 参数名称 public static void sum(int... nums)
  • 可变参数的作用:
    • 传输参数非常灵活,方便。
    • 可以不传输参数。
    • 可以传输一个参数。
    • 可以传输多个参数。
    • 可以传输一个数组。
    • 可变参数在方法内部本质上就是一个数组。
  • 可变参数的注意事项:
    • 1.一个形参列表中可变参数只能有一个。
    • 2.可变参数必须放在形参列表的最后面。

ps:b站课程《黑马程序员Java13天进阶》根据官方笔记结合自身情况整理的笔记
视频链接

相关文章:

【java 13天进阶Day05】数据结构,List,Set ,TreeSet集合,Collections工具类

常见的数据结构种类 集合是基于数据结构做出来的&#xff0c;不同的集合底层会采用不同的数据结构。不同的数据结构&#xff0c;功能和作用是不一样的。数据结构&#xff1a; 数据结构指的是数据以什么方式组织在一起。不同的数据结构&#xff0c;增删查的性能是不一样的。不同…...

极狐GitLab 议题和史诗创建的速率限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 议题和史诗创建的速率限制 (BASIC SELF) 速率限制是为了控制新史诗和议题的创建速度。例如&#xff0c;如果您将限制设置为 …...

AIGC-几款本地生活服务智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi)👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资…...

十、数据库day02--SQL语句01

文章目录 一、新建查询1.查询窗口的开启方法2. 单语句运行方法 二、数据库操作1.创建数据库2. 使用数据库3. 修改数据库4. 删除数据库和查看所有数据库5. 重点&#xff1a;数据库备份5.1 应用场景5.2 利用工具备份备份操作还原操作 5.3 扩展&#xff1a;使用命令备份 三、数据表…...

2025年MathorCup数学应用挑战赛D题问题一求解与整体思路分析

D题 短途运输货量预测及车辆调度 问题背景 问题分析&#xff1a;四个问题需要建立数学模型解决就业状态分析与预测&#xff0c;旨在通过数学建模对宜昌地区的就业数据进行深入分析&#xff0c;并基于此预测就业状态。提供的数据涵盖了被调查者的个人信息、就业信息、失业信息…...

关于三防漆清除剂

成分及原理 主要成分&#xff1a;通常包含有机溶剂&#xff0c;如丙酮、甲苯、二甲苯等&#xff0c;以及一些表面活性剂、缓蚀剂等添加剂。工作原理&#xff1a;有机溶剂能够溶解三防漆中的树脂等成分&#xff0c;使其失去粘性和附着性&#xff0c;从而可以被轻易地擦拭或冲洗…...

2025年MathorCup数学应用挑战赛【选题分析】

【25MathorCup选题分析】 &#x1f64b;‍♀&#x1f64b;‍♂数模加油站初步分析评估了此次竞赛题目&#xff1a; ✅A题&#xff1a;该题新颖性强&#xff0c;属于“算子学习深度学习几何建模”的交叉问题&#xff0c;涉及PINN、FNO、KAN等算子神经网络模型构建&#xff0c;任…...

在windows上交叉编译opencv供RK3588使用

环境 NDK r27、RK3588 安卓板子、Android 12 步骤操作要点1. NDK 下载选择 r27 版本&#xff0c;解压到无空格路径&#xff08;如 C:/ndk&#xff09;2. 环境变量配置添加 ANDROID_NDK_ROOT 和工具链路径到系统 PATH3. CMake 参数调整指定 ANDROID_NATIVE_API_LEVEL31、ANDRO…...

零基础玩转AI数学建模:从理论到实战

前言 数学建模作为连接数学理论与现实世界的桥梁&#xff0c;在科学研究、工程实践和商业决策等领域发挥着越来越重要的作用。随着人工智能技术的迅猛发展&#xff0c;以ChatGPT为代表的大语言模型为数学建模领域带来了革命性的变革。本书旨在帮助读者掌握这一变革带来的新机遇…...

IDEA 2025.1更新-AI助手试用和第三方模型集成方案

今天刚把 IntelliJ IDEA 更新到了 2025.1 版本&#xff0c;主要是想看看这次 AI Assistant 有什么新东西。之前看到消息说功能有更新&#xff0c;而且似乎可以免费试用&#xff0c;就动手试了试&#xff0c;顺便把过程和一些发现记录下来&#xff0c;给可能需要的朋友一个参考。…...

static关键字

思维导图&#xff1a; 在 Java 中&#xff0c;static 是一个非常重要的关键字&#xff0c;它可以用来修饰类的成员&#xff0c;包括变量、方法、代码块以及内部类。下面为你详细介绍 static 关键字的各种用法和特点。 一.修饰内部类 静态内部类&#xff1a;当 static 修饰内部类…...

gl-matrix 库简介

gl-matrix 库简介 gl-matrix 是一个高性能的 JavaScript 矩阵和向量库&#xff0c;专门为 WebGL 和其他 3D 图形应用设计。它提供了处理 2D、3D 和 4D 向量以及矩阵运算的高效方法。 主要特性 高性能&#xff1a;经过高度优化&#xff0c;执行速度快轻量级&#xff1a;体积小…...

Spring Boot 核心注解全解:@SpringBootApplication背后的三剑客

大家好呀&#xff01;&#x1f44b; 今天我们要聊一个超级重要的Spring Boot话题 - 那个神奇的主类注解SpringBootApplication&#xff01;很多小伙伴可能每天都在用Spring Boot开发项目&#xff0c;但你真的了解这个注解背后的秘密吗&#xff1f;&#x1f914; 别担心&#x…...

Android 音频架构全解析:从 AudioTrack 到 AudioFlinger

在开发音视频相关应用时&#xff0c;我们常会接触到 MediaPlayer、SoundPool、AudioTrack、OpenSL ES、AAudio、Oboe 等名词&#xff0c;它们都与 Android 的音频播放息息相关。然而&#xff0c;真正理解它们之间的关系以及背后运行机制&#xff0c;才能写出高性能、低延迟的音…...

【教程】无视硬件限制强制升级Windows 11

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 1、下载升级工具&#xff1a;https://github.com/builtbybel/Flyby11/releases 2、解压后打开软件&#xff1a; 3、拖入win11.iso或者自动下载&#xf…...

ICPR-2025 | 让机器人在未知环境中 “听懂” 指令精准导航!VLTNet:基于视觉语言推理的零样本目标导航

作者&#xff1a;Congcong Wen, Yisiyuan Huang, Hao Huang ,Yanjia Huang, Shuaihang Yuan, YuHao, HuiLin and Yi Fang 单位&#xff1a;纽约大学阿布扎比分校具身人工智能与机器人实验室&#xff0c;纽约大学阿布扎比分校人工智能与机器人中心&#xff0c;纽约大学坦登工程…...

替代升级VMware | 云轴科技ZStack构建山西证券一云多芯云平台

通过云轴科技ZStack Cloud云平台&#xff0c;山西证券打造了敏捷部署、简单运维的云平台&#xff0c;不仅兼容x86、海光、鲲鹏三种异构服务器实现一云多芯&#xff0c;还通过云平台虚拟化纳管模块纳管原有VMware虚拟化资源&#xff0c;并对接第三方集中式存储&#xff0c;在保护…...

Houdini python code:参数指定文件路径

创建null节点并命名为control并增加filedir参数 创建python节点 node hou.pwd() geo node.geometry()node hou.node(/obj/output_tetgen/control) filedir node.parm(filedir).eval() print("filedir:",filedir)得到输出...

ChatGPT-o3辅助学术写作的关键词和引言效果如何?

目录 关键词 引言 论文引言&#xff08;≈300 字&#xff09; 大家好这里是AIWritePaper官方账号&#xff0c;官网&#x1f449;AIWritePaper~ 关键词 摘要是文章的精华&#xff0c;通常在200-250词左右。要包括研究的目的、方法、结果和结论。让AI工具作为某领域内资深的研…...

树莓派5+Vosk+python实现语音识别

简介 Vosk是语音识别开源框架&#xff0c;支持二十种语言 - 中文&#xff0c;英语&#xff0c;印度英语&#xff0c;德语&#xff0c;法语&#xff0c;西班牙语&#xff0c;葡萄牙语&#xff0c;俄语&#xff0c;土耳其语&#xff0c;越南语&#xff0c;意大利语&#xff0c;荷…...

Selenium之 CSS 选择器详细讲解

Selenium之 CSS 选择器详细讲解 引言 在.Selenium.自动化测试中&#xff0c;元素定位是至关重要的一环。而.CSS.选择器作为一种强大且灵活的定位工具&#xff0c;在.Selenium.中得到了广泛的应用。本文将详细介绍.CSS.选择器的基本语法、常用类型以及如何在.Selenium.中高效地…...

【LeetCode】大厂面试算法真题回忆(61)--组装新的数组

题目描述 给你一个整数M和数组N,N中的元素为连续整数,要求根据N中的元素组装成新的数组R,组装规则: R中元素总和加起来等于M。R中的元素可以从N中重复选取。R中的元素最多只能有1个不在N中,且比N中的数字都要小(不能为负数)。请输出:数组R一共有多少组装办法。 输入描…...

基于用户的协同过滤推荐系统实战项目

文章目录 基于用户的协同过滤推荐系统实战项目1. 推荐系统基础理论1.1 协同过滤概述1.2 基于用户的协同过滤原理1.3 相似度计算方法1.3.1 余弦相似度(Cosine Similarity)1.3.2 皮尔逊相关系数(Pearson Correlation)1.3.3 欧几里得距离(Euclidean Distance)1.3.4 调整余弦相似度…...

浅析数据库面试问题

以下是关于数据库的一些常见面试问题: 一、基础问题 什么是数据库? 数据库是按照数据结构来组织、存储和管理数据的仓库。SQL 和 NoSQL 的区别是什么? SQL 是关系型数据库,使用表结构存储数据;NoSQL 是非关系型数据库,支持多种数据模型(如文档型、键值对型等)。什么是…...

【Python3】Django 学习之路

第一章&#xff1a;Django 简介 1.1 什么是 Django&#xff1f; Django 是一个高级的 Python Web 框架&#xff0c;旨在让 Web 开发变得更加快速和简便。它鼓励遵循“不要重复自己”&#xff08;DRY&#xff0c;Don’t Repeat Yourself&#xff09;的原则&#xff0c;并提供了…...

Java并发编程高频面试题(已整理Java面试宝典PDF完整版)

为什么要使用并发编程 提升多核CPU利用率&#xff1a;现代计算机通常配备多核CPU&#xff0c;通过创建多个线程&#xff0c;操作系统可以将不同线程分配到不同CPU核心上并行执行&#xff0c;从而充分利用硬件资源。若仅使用单线程&#xff0c;则只能利用一个CPU核心&#xff0c…...

第 4 期:DDPM中的损失函数——为什么只预测噪声?

—— 从变分下界到噪声预测 回顾&#xff1a;我们到底在做什么&#xff1f; 在第 3 期中&#xff0c;我们介绍了扩散模型的逆过程建模。简而言之&#xff0c;目标是通过神经网络学习从噪声 x_t​ 中恢复图像 x_0&#xff0c;并且我们通过预测噪声 ϵ来完成这个任务。 今天&a…...

Docker使用、容器迁移

Docker 简介 Docker 是一个开源的容器化平台&#xff0c;用于打包、部署和运行应用程序及其依赖环境。Docker 容器是轻量级的虚拟化单元&#xff0c;运行在宿主机操作系统上&#xff0c;通过隔离机制&#xff08;如命名空间和控制组&#xff09;确保应用运行环境的一致性和可移…...

专业热度低,25西电光电工程学院(考研录取情况)

1、光电工程学院各个方向 2、光电工程学院近三年复试分数线对比 学长、学姐分析 由表可看出&#xff1a; 1、光学工程25年相较于24年下降20分&#xff0c; 2、光电信息与工程&#xff08;专硕&#xff09;25年相较于24年上升15分 3、25vs24推免/统招人数对比 学长、学姐分析…...

六、LangChain Agent 最佳实践

1. 架构设计与组件选择 (1) 核心组件分层设计 Model(LLM驱动层) 生产环境推荐:使用 gpt-4-1106-preview 或 Anthropic Claude 3 等高性能模型,结合 model.with_fallbacks() 实现故障转移(如备用模型或本地模型)。本地部署:选择 Llama3-70B 等开源模型,搭配 Docker 或 …...

ubantu18.04(Hadoop3.1.3)之MapReduce编程

说明&#xff1a;本文图片较多&#xff0c;耐心等待加载。&#xff08;建议用电脑&#xff09; 注意所有打开的文件都要记得保存。 第一步&#xff1a;准备工作 本文是在之前Hadoop搭建完集群环境后继续进行的&#xff0c;因此需要读者完成我之前教程的所有操作。 第二步&…...

PoCL环境搭建

PoCL环境搭建 **一.关键功能与优势****二.设计目的****三.测试步骤**1.创建容器2.安装依赖3.编译安装pocl4.运行OpenCL测试程序 Portable Computing Language (PoCL) 简介 Portable Computing Language (PoCL) 是一个开源的、符合标准的异构计算框架&#xff0c;旨在为 OpenCL…...

关于hadoop和yarn的问题

1.hadoop的三大结构及各自的作用&#xff1f; HDFS&#xff08;Hadoop Distributed File System&#xff09;&#xff1a;分布式文件系统&#xff0c;负责海量数据的存储&#xff0c;具有高容错性和高吞吐量。 MapReduce&#xff1a;分布式计算框架&#xff0c;用于并行处理大…...

软件工程中数据一致性的探讨

软件工程中数据一致性的探讨 引言数据一致性&#xff1a;软件工程中的业务正确性与性能的权衡数据一致性为何重要业务正确性&#xff1a;事务的原子性与一致性ACID原则的基石分布式事务的挑战一致性级别&#xff1a;从强一致到最终一致 实践中的一致性权衡金融系统&#xff1a;…...

在服务器上安装redis

1.安装所需插件gcc 查看gcc版本 gcc -v 没有安装的话,安装命令如下 yum -y install gcc 2.安装 下载安装包 https://download.redis.io/releases/ 将安装包上传到/opt/software目录下 解压安装包 cd /opt/software tar -zxvf redis-6.2.6.tar.gz 编译并安装redis到指…...

如何选择适合您的过程控制器?

在现代工业中&#xff0c;过程控制器是确保生产效率、质量和安全性的关键设备。它们可以精准监测温度、湿度等变量&#xff0c;优化制造流程&#xff0c;减少人工干预&#xff0c;从而降低错误率和运营成本。但您是否清楚&#xff0c;哪种过程控制器更适合您的企业&#xff1f;…...

C#/.NET/.NET Core拾遗补漏合集(25年4月更新)

前言 在这个快速发展的技术世界中&#xff0c;时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节&#xff0c;以帮助大家更全面地了解这些技术栈的特性和发展方向。 ✍C#/.NET/.N…...

闲来无事,用HTML+CSS+JS打造一个84键机械键盘模拟器

今天闲来无聊&#xff0c;突发奇想要用前端技术模拟一个机械键盘。说干就干&#xff0c;花了点时间搞出来了这么一个有模有样的84键机械键盘模拟器。来看看效果吧&#xff01; 升级版的模拟器 屏幕录制 2025-04-18 155308 是不是挺像那么回事的&#xff1f;哈哈&#xff01; 它…...

极狐GitLab 项目导入导出设置介绍?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 导入导出设置 (BASIC SELF) 导入和导出相关功能的设置。 配置允许的导入源 在从其他系统导入项目之前&#xff0c;必须为该…...

极狐GitLab 项目 API 的速率限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 项目 API 的速率限制 (BASIC SELF) 引入于 15.10 版本&#xff0c;功能标志为rate_limit_for_unauthenticated_projects_api_…...

electron 渲染进程按钮创建新window,报BrowserWindow is not a constructor错误;

在 Electron 中&#xff0c;有主进程和渲染进程 主进程&#xff1a;在Node.js环境中运行—意味着能够使用require模块并使用所有Node.js API 渲染进程&#xff1a;每个electron应用都会为每个打开的BrowserWindow&#xff08;与每个网页嵌入&#xff09;生成一个单独的渲染器进…...

【前沿】成像“跨界”测量——扫焦光场成像

01 背景 眼睛是人类认识世界的重要“窗口”&#xff0c;而相机作为眼睛的“延伸”&#xff0c;已经成为生产生活中最常见的工具之一&#xff0c;广泛应用于工业检测、医疗诊断与影音娱乐等领域。传统相机通常以“所见即所得”的方式记录场景&#xff0c;传感器捕捉到的二维图像…...

基于C++(MFC)图形编辑界面工具

MFC 图形编辑界面工具 一、背景 喔&#xff0c;五天的实训终于结束了&#xff0c;学校安排的这次实训课名称叫高级程序设计实训&#xff0c;但在我看来&#xff0c;主要是学习了 Visual C .NET 所提供的 MFC&#xff08;Microsoft Foundation Class)库所提供的类及其功能函数…...

Linux网络通信核心机制解析与层级架构探秘

作为现代操作系统的神经网络&#xff0c;Linux网络通信系统通过多层协作架构实现高效的数据传输机制。本文将从模块化设计、报文处理路径、核心组件交互等多个维度&#xff0c;解析Linux网络通信系统的实现原理与优化策略&#xff0c;并结合内核源码示例与性能调优实践&#xf…...

Tensorflow实现用接口调用模型训练和停止训练功能

语言&#xff1a;Python 框架&#xff1a;Flask、Tensorflow 功能描述&#xff1a;存在两个接口&#xff0c;一个接口实现开始训练模型的功能&#xff0c;一个接口实现停止训练的功能。 实现&#xff1a;用一个全局变量存储在训练中的模型。 # 存储所有训练任务 training_task…...

HTTP测试智能化升级:动态变量管理实战与效能跃迁

在Web应用、API接口测试等领域&#xff0c;测试场景的动态性和复杂性对测试数据的灵活管理提出了极高要求。传统的静态测试数据难以满足多用户并发、参数化请求及响应内容验证等需求。例如&#xff0c;在电商系统性能测试中&#xff0c;若无法动态生成用户ID、订单号或实时提取…...

PyTorch 浮点数精度全景:从 float16/bfloat16 到 float64 及混合精度实战

PyTorch 在深度学习中提供了多种 IEEE 754 二进制浮点格式的支持&#xff0c;包括半精度&#xff08;float16&#xff09;、Brain‑float&#xff08;bfloat16&#xff09;、单精度&#xff08;float32&#xff09;和双精度&#xff08;float64&#xff09;&#xff0c;并通过统…...

《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图

目录 1. UML概述 2. UML构造块 (1) 事物&#xff08;Things&#xff09; (2) 关系&#xff08;Relationships&#xff09; 真题示例&#xff1a; 3. UML图分类 (1) 结构图&#xff08;静态&#xff09; (2) 行为图&#xff08;动态&#xff09; 4. 核心UML图详解 5.…...

基于C++(MFC)的细胞识别程序

基于 mfc 的细胞识别程序 一、图像处理课程设计目标 1.1 课题与技术指标 课题&#xff1a;利用图像处理技术设计细胞识别程序。 技术指标&#xff1a; 实验 VS2019 MFC 开发平台待识别图像为 24bit 的真彩色细胞图像进行处理要求识别出细胞&#xff0c;并且保证准确度情况下…...

【前端HTML生成二维码——MQ】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前端HTML生成二维码——MQ 前言本文将介绍前端HTML如何更具用户输入的内容生成对应的二维码,附页面代码、实现函数、js脚本。一、自定义显示页面1、效果图二、使用步骤1、引入库2、实现函数3、页面及函数代…...