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

从零开始学java--集合类(2)

集合类

目录

集合类

Queue

队列的使用:

双端队列(Deque)

Map和Set

概念:

模型:

Map

常见方法说明:

注意:

TreeMap和HashMap的区别:

Set

常见方法说明:

注意:

TreeSet和HashSet的区别:

Stream流

Collections工具类

常用方法:


Queue

队列的使用:

在Java中,Queue是个接口,底层是通过链表实现的。  

方法功能

boolean add(E e)

入队列(插入失败会抛出异常)
boolean offer(E e)入队列
E remove( )出队列(队列已经为空会抛出异常)
E poll( )出队列
element( )获取对头元素(队列已经为空会抛出异常)
peek( )获取队头元素
int size( )获取队列中有效元素个数
boolean isEmpty()boolean isEmpty()

注意:Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口。


双端队列(Deque)

双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。 那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。

双端队列既可以当做普通队列使用,也可以当做栈来使用。

Deque是一个接口,使用时必须创建LinkedList的对象。


Map和Set

概念:

Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有:

  1. 直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢
  2. 二分查找,时间复杂度为 ,但搜索前必须要求序列是有序的

上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如:

  1. 根据姓名查询考试成绩
  2. 通讯录,即根据姓名查询联系方式
  3. 不重复集合,即需要先搜索关键字是否已经在集合中

可能在查找时进行一些插入和删除的操作,即动态查找,那上述两种方式就不太适合了,本节介绍的Map和Set是一种适合动态查找的集合容器。

模型:

一般把搜索的数据称为关键字(Key),和关键字对应的称为值(Value),将其称之为Key-value的键值对,所以模型会有两种:

纯 key 模型,比如:

  • 有一个英文词典,快速查找一个单词是否在词典中
  • 快速查找某个名字在不在通讯录中

Key-Value 模型,比如:

  • 统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数:<单词,单词出现的次数>
  • 梁山好汉的江湖绰号:每个好汉都有自己的江湖绰号

而Map中存储的就是key-value的键值对,Set中只存储了Key。


Map

Map是一个接口类,该类没有继承自Collection,该类中存储的是结构的键值对,并且K一定是唯一的,不能重复。  

常见方法说明:

方法解释
V get(Object key)返回 key 对应的 value
V getOrDefault(Object key, V defaultValue)返回 key 对应的 value,key 不存在,返回默认值
V put(K key, V value)设置 key 对应的 value
V remove(Object key)删除 key 对应的映射关系
void putAll(Map<? extands K, ? extands V)将另一个Map中的所有键值对添加到当前Map中
void clear( )

清空整个Map

Set keySet()返回所有 key 的不重复集合
Collection values()返回所有 value 的可重复集合
Set<Map.Entry<K,V>> entrySet()返回所有的 key-value 映射关系
boolean containsKey(Object key)判断是否包含 key
boolean containsValue(Object value)判断是否包含 value

注意:

  1. Map是一个接口,不能直接实例化对象,如果要实例化对象只能实例化其实现类TreeMap或者HashMap
  2. Map中存放键值对的Key是唯一的,value是可以重复的
  3. 在TreeMap中插入键值对时,key不能为空,否则就会抛NullPointerException异常,value可以为空。但是HashMap的key和value都可以为空。
  4. Map中的Key可以全部分离出来,存储到Set中来进行访问(因为Key不能重复)。
  5. Map中的value可以全部分离出来,存储在Collection的任何一个子集合中(value可能有重复)。
  6. Map中键值对的Key不能直接修改,value可以修改,如果要修改key,只能先将该key删除掉,然后再来进行重新插入。

TreeMap和HashMap的区别:

Map底层结构TreeMapHashMap
底层结构红黑树哈希桶
插入/删除/查找时间复杂度O(log2N)O(1)
是否有序关于Key有序无序
线程安全不安全不安全
插入/删除/查找区别需要进行元素比较通过哈希函数计算哈希地址
比较与覆写key必须能够比较,否则会抛出ClassCastException异常自定义类型需要覆写equals和hashCode方法
应用场景需要Key有序场景下Key是否有序不关心,需要更高的时间性能

LinkedHashMap按照插入顺序遍历

    public static void main(String[] args){Map<Integer,String> map=new HashMap<>();map.put(1,"小红");map.put(2,"小明");map.forEach((k,v)->System.out.println(k+"="+v));Map<Integer,String>map1=new TreeMap<>((a,b)->b-a); //按倒序输出map1.put(2,"m");map1.put(1,"j");map1.put(3,"a");map1.forEach((k1,v1)->System.out.println(k1+"="+v1));}
/*
1=小红
2=小明
3=a
2=m
1=j
*/

Set

常见方法说明:

方法解释
boolean add(E e)添加元素,但重复元素不会被添加成功
void clear()清空集合
boolean contains(Object o)判断o是否在集合中
Iterator<E> iterator()返回迭代器
boolean remove(Object o)删除集合中的o
int size()返回set中元素的个数
boolean isEmpty()检测set是否为空,空返回true,否则返回false
Object[] toArray()将set中的元素转换为数组返回
boolean containsAll(Collection<?> c)集合c中的元素是否在set中全部存在,是返回true,否则返回false
boolean addAll(Collection<?extends E>c)将集合c中的元素添加到set中,可以达到去重的效果

注意:

  1. Set是继承自Collection的一个接口类
  2. Set中只存储了key,并且要求key一定要唯一
  3. 不支持随机访问(不允许通过下标访问)
  4. TreeSet的底层是使用Map来实现的,其使用key与Object的一个默认对象作为键值对插入到Map中的
  5. Set最大的功能就是对集合中的元素进行去重
  6. 实现Set接口的常用类有TreeSet和HashSet,还有一个LinkedHashSet,LinkedHashSet是在HashSet的基础 上维护了一个双向链表来记录元素的插入次序。 
  7. Set中的Key不能修改,如果要修改,先将原来的删除掉,然后再重新插入
  8. TreeSet中不能插入null的key,HashSet可以。

TreeSet和HashSet的区别:

Set底层结构TreeSetHashSet
底层结构红黑树哈希桶
插入/删除/查找时间复杂度OO(1)
是否有序关于key有序不一定有序
线程安全不安全不安全
插入/删除/查找区别按照红黑树的特性来进行插入和删除

1、先计算key哈希地址

2、然后进行插入和删除

比较与覆写key必须能够比较,否则会抛出ClassCastException异常自定义类型需要覆写equals和hashCode方法
应用场景需要Key有序场景下Key是否有序不关心,需要更高的时间性能

Stream流

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选、排序、聚合等。

    public static void main(String[] args){List<String> list =new ArrayList<>(Arrays.asList("aaaa","Saaaa","Saaaa","xx","Xss","Lxxx"));//删除长度不大于3的字符串//删除首字母不为大写的字母//去掉重复的字符串list=list.stream().filter(str ->str.length()>3) //保留的条件.filter(str ->str.charAt(0)>='A'&&str.charAt(0)<='Z').distinct()  //去重,用equals判断.collect(Collectors.toList());System.out.println(list);List<Integer>collect=list.stream().map(String::length).collect(Collectors.toList());System.out.println(collect);}
//输出[Saaaa, Lxxx]
//[5, 4]

不能认为每一步是直接依次执行的。Stream会先记录每一步操作,而不是直接开始执行内容,当整个链式调用完成后,才会依次执行,也就是说需要的时候,工厂的机器才会按照预定的流程启动。

生成随机数:

    public static void main(String[] args){Random random=new Random();random.ints(-100,100).limit(10).filter(i -> i<0) //只保留小于0的数字.sorted()  //默认从小到大排序.forEach(System.out::println);}

Collections工具类

Arrays是一个用于操作数组的工具类

Collections类是专用于集合的工具类

常用方法:

    public static void main(String[] args){List list1=new ArrayList<>(Arrays.asList(1,4,5,2,9,0));//求最大值最小值Collections.max(list1);Collections.min(list1);//对集合进行二分搜索(注意:集合的具体类型必须是实现Comparable接口的类)Collections.sort(list1);System.out.println(Collections.binarySearch(list1,4));
//输出3//对集合的元素进行快速填充,注意这个填充是对集合中的已有元素进行覆盖//如果集合中本身没有元素,那么fill操作不会生效Collections.fill(list1,0);System.out.println(list1);
//输出[0, 0, 0, 0, 0, 0]//emptyXXX快速生成一个只读的空集合List<Integer>list2=Collections.emptyList();//Collections.singletonList()会生成一个只有一个元素的Listlist2.add(10); //不支持,会直接抛出异常//将一个可修改的集合变成只读的集合:List<Integer>list3=new ArrayList<>(Arrays.asList(1,3,3,24));List<Integer>newList=Collections.unmodifiableList(list3);newList.add(10); //不支持,会抛出异常//寻找子集合的位置System.out.println(Collections.indexOfSubList(list3,Arrays.asList(3,3)));
//输出1}

由于泛型机制上的一些漏洞,实际上对应类型的集合类有可能会存放其他类型的值,泛型的检查值存在于编译阶段,我们只要绕过这个阶段,在实际运行时,并不会真的进行类型检查,要解决这些问题就是在运行时进行类型检查:

    public static void main(String[] args){List list1=new ArrayList<>(Arrays.asList(1,4,5,2,9,0));list1=Collections.checkedList(list1,Integer.class);list1.add("aaa");System.out.println(list1);}
//在输出时会报错

相关文章:

从零开始学java--集合类(2)

集合类 目录 集合类 Queue 队列的使用&#xff1a; 双端队列&#xff08;Deque&#xff09; Map和Set 概念&#xff1a; 模型&#xff1a; Map 常见方法说明&#xff1a; 注意&#xff1a; TreeMap和HashMap的区别&#xff1a; Set 常见方法说明&#xff1a; 注…...

在Star-CCM+中实现UDF并引用场数据和网格数据

在Star-CCM中实现UDF并引用场数据和网格数据 Star-CCM中的用户自定义函数(UDF)允许用户通过Java或C/C编程扩展软件功能。下面我将详细介绍如何实现UDF并引用模拟数据。 1. UDF基础实现方法 1.1 创建UDF的步骤 在Star-CCM中&#xff0c;右键点击"工具" → “用户函…...

WebRTC 服务器之SRS服务器性能优化配置

1.概述 SRS &#xff08;Simple Realtime Server&#xff09; 中提供的各种性能优化选项。这些选项允许您针对不同场景优化 SRS&#xff0c;从而在延迟、吞吐量和资源利用率之间取得平衡。有关常规配置的信息&#xff0c;请参阅配置。 1.1 性能提升目标 流媒体服务器的性能通常…...

n8n 中文系列教程_20. n8n高效开发秘诀:单步调试与测试用例实战指南

在n8n低代码开发中&#xff0c;你是否遇到过工作流运行时出错却难以定位问题&#xff1f;或者精心设计的流程在处理新数据时突然崩溃&#xff1f;单步调试和测试用例是解决这些痛点的关键&#xff01;本文将带你掌握精准调试技巧和高效测试方法&#xff0c;确保你的自动化流程稳…...

手机携号转网查询,一键查看号码是否可转网!

在现代社会&#xff0c;手机已经成为人们生活不可或缺的一部分。随着通讯技术的不断发展&#xff0c;手机用户们也有了更多的选择权利&#xff0c;比如携号转网。那么&#xff0c;如何方便地查询一个手机号是否可以进行携号转网呢&#xff1f;今天&#xff0c;我们就来介绍一款…...

多线程网络编程:粘包问题、多线程/多进程服务器实战与常见问题解析

多线程网络编程&#xff1a;粘包问题、多线程/多进程服务器实战与常见问题解析 一、TCP粘包问题&#xff1a;成因、影响与解决方案 1. 粘包问题本质 TCP是面向流的协议&#xff0c;数据传输时没有明确的消息边界&#xff0c;导致多个消息可能被合并&#xff08;粘包&#xf…...

【ArcGISPro】属性规则--属性联动

新建要素 直接点击【完成】 设置全局ID <...

五一感想:知识产权加速劳动价值!

今天是五一劳动节&#xff0c;祝各位网友劳动节快乐&#xff0c;昨天《中华人民共和国民营经济促进法》通过&#xff0c;普推知产老杨看到其中第三十三条专门就是针对知识产权的&#xff0c;加强对民营经济的原始创新保护。 一个普通的小物件白牌可能就卖1元钱&#xff0c;但是…...

ORACLE EBS 12.1 启用https 简单策略

Oracle EBS 启用https的官方文档是Document 376700.1, Enabling TLS in Oracle E-Business Suite Release 12.1&#xff0c;上面各种配置比较繁琐&#xff0c;我们参照Using Load-Balancers with Oracle E-Business Suite Release 12.0 and 12.1 (Doc ID 380489.1) 这个文档来利…...

Sublime PrettyJson 快捷键

一、进入快捷键编辑页 二、添加格式化、去掉格式化 快捷键 [ { "keys": ["ctrlcommandj"], "command": "pretty_json"}, { "keys": ["ctrlcommandm"], "command": "un_pretty_json"}…...

【计算机网络】TCP为什么可靠?解决了哪些问题?

TCP提供了&#xff1a; 1.可靠传输 2.流量控制 3.拥塞控制 4.连接管理 解决了数据在不可靠IP网络上的传输问题。 下面具体分析这4个方面。 1.可靠性传输&#xff1a; TCP确保数据包在网络传输过程中 不丢失、不重复&#xff0c;并且按顺序到达。 通过确认(ACK)、重传机制以…...

AI服务器的作用都有哪些?

根据网络环境的飞速发展&#xff0c;人工智能技术逐渐入驻到各个行业当中&#xff0c;其中AI服务器则是一种专门用来运行人工智能算法和模型的硬件设备&#xff0c;通常具备高性能计算、大容量存储和并行计算等多种功能&#xff0c;本文就来详细讲解一下AI服务器的作用&#xf…...

移动应用开发:自定义 View 处理大量数据的性能与交互优化方案

实现 1 万条数据下流畅滑动与灵敏交互的完美平衡。 一、数据渲染优化&#xff1a;从 1 万条到丝滑体验 &#xff08;一&#xff09;视图复用机制 视图复用是提升大量数据渲染性能的关键策略。以一个简单的自定义列表视图为例&#xff0c;我们可以构建如下的复用池管理机制&a…...

在 Ubuntu 下使用 ESP-IDF 通过串口烧录 ESP32

1. 准备工作 (1) 安装 ESP-IDF 环境 确保已完成 ESP-IDF 的安装和配置&#xff08;参考官方文档&#xff09;&#xff1a; bash 复制 下载 git clone --recursive https://github.com/espressif/esp-idf.git cd esp-idf ./install.sh . ./export.sh (2) 连接开发板 通过…...

探索SQLMesh中的Jinja宏:提升SQL查询的灵活性与复用性

在数据工程和数据分析领域&#xff0c;SQL是不可或缺的工具。随着项目复杂度的增加&#xff0c;如何高效地管理和复用SQL代码成为了一个重要课题。SQLMesh作为一款强大的工具&#xff0c;不仅支持标准的SQL语法&#xff0c;还引入了Jinja模板引擎的宏功能&#xff0c;极大地提升…...

【Linux】Linux中的调度和切换

一、引入基本概念 在任何的分时操作系统中&#xff0c;其调度都是较为公平的调度。在来回顾一下关于优先级为什么会被限制的问题&#xff1a; Linux为什么调整优先级是要受到限制的呢&#xff1f;&#xff1f; 如果不加限制&#xff0c;将自己进程的优先级调整到非常高&#xf…...

.NET 通过回调函数执行 Shellcode启动进程

在红队活动往往需要考虑如何在实际环境中绕过防御机制,启动木马进程。今天,我们将深入探讨一种较少被提及但非常有趣的技术——利用 EnumPwrSchemes 函数回调来执行shellcode。 0x01 EnumPwrSchemes函数 EnumPwrSchemes 是 Windows 操作系统中的一个 API 函数,位于 C:\Win…...

快速体验 .NET9 提供的 HybridCache 混合缓存

.NET 9 引入了 HybridCache&#xff0c;这是一个新的高性能、分布式就绪的内存缓存实现&#xff0c;旨在为现代 Web 应用提供更高效的数据缓存机制。它结合了本地缓存&#xff08;如 IMemoryCache&#xff09;和分布式缓存&#xff08;如 Redis、Garnet、SQL Server&#xff09…...

使用docker配置Mysql

Docker 命令 下面是一个常用的 Docker 命令&#xff0c;用于启动 MySQL 容器&#xff0c;并将数据挂载到本地目录&#xff1a; docker run -d \--name mysql-server \-e MYSQL_ROOT_PASSWORDyourpassword \-e MYSQL_DATABASEyourdb \-e MYSQL_USERyouruser \-e MYSQL_PASSWOR…...

stm32之输出比较OC和输入捕获IC

目录 1.输出比较OC1.1 简介1.2 PWM简介1.3 输出比较通道1.3.1 通用定时器1.3.2 高级定时器 1.4 PWM基本结构1.6 舵机1.7 直流电机1.7.1 引入&#xff1a;MX1508 芯片1.7.2 TB6612芯片 1.8 结构体和API1.8.1 结构体1.8.2 API1. TIM_OC1Init / TIM_OC2Init / TIM_OC3Init / TIM_O…...

为什么Transformer推理需要做KV缓存

一、我们先来回忆一下在transformer中KV在哪里出现过&#xff0c;都有什么作用&#xff1f; α的计算过程&#xff1a; 这里引入三个向量&#xff1a; 图中的q为Query&#xff0c;用来匹配key值 图中的k为key,用来被Query匹配 图中的Value&#xff0c;是用来被进行加权平均的 由…...

Stream和Collections工具类

Stream流 Java 8 API添加了一个新的抽象称为流Stream&#xff0c;可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。这种风格将要处理的元素集合看作一种流&#xff0c;流在管道中传输&am…...

结合Hutool 突增突降检测的算法

在 Hutool 中虽然没有直接提供“突增突降检测”的算法&#xff0c;但可以通过其提供的工具类&#xff08;如 CollUtil、ArrayDeque、MathUtil 等&#xff09;结合滑动窗口、差分分析等方法&#xff0c;快速实现突增突降检测逻辑。以下是基于 Hutool 的实现思路和示例代码&#…...

java springboot deepseek流式对话集成示例

1.直接上代码-后端&#xff1a; RestController CrossOrigin(origins "*") public class DeepSeekController {private static final String API_URL "https://api.deepseek.com/v1/chat/completions";private final ObjectMapper objectMapper new Ob…...

技术对暴力的削弱

信息时代的大政治分析&#xff1a;效率对暴力的颠覆 一、工业时代勒索逻辑的终结 工厂罢工的消亡 1930年代通用汽车罢工依赖工厂的物理集中、高资本投入和流水线脆弱性&#xff0c;通过暴力瘫痪生产实现勒索。 信息时代企业分散化、资产虚拟化&#xff08;如软件公司可携带代码…...

RAG框架搭建(基于Langchain+Ollama生成级RAG 聊天机器人)

目录 一 Ollama安装 Windows 系统安装 验证安装 二 Langchain安装 2.1 先创建一个虚拟环境 2.2 安装最新版 langchain​ 三 基于 Langchain私有模型&#xff0c;构建一个生成级RAG 聊天机器人 3.1 初始化LLM 3.2 增强生成 3.3生成嵌入 3.4 生成并存储嵌入 一 Ol…...

spring cloud gateway(网关)简介

Spring Cloud Gateway 是一个基于 Spring WebFlux 构建的强大且广泛使用的 API 网关。它负责处理所有进入的请求&#xff0c;并将它们路由到相应的后端服务。 Gateway 的主要作用&#xff1a; 统一的入口点 (Single Entry Point)&#xff1a; 它为所有的客户端请求提供了一个…...

webrtc 视频直播

webrtc 是一种开源的音视频通信技术&#xff0c;可以不借助中间媒介建立浏览器点对点&#xff08;peer-to-peer&#xff09;连接&#xff0c;实现音视频以及其他数据的传输。webrtc具有平台兼容性&#xff0c;低延迟与高实时的优点。今天主要记录一下webrtc的使用记录&#xff…...

【Elastsearch】如何获取已创建的api keys

在Elasticsearch中&#xff0c;可以通过API获取已创建的API密钥&#xff08;API keys&#xff09;。以下是具体步骤和示例&#xff1a; 1.使用GET请求获取API密钥 Elasticsearch提供了GETAPI&#xff0c;用于列出当前用户可以访问的所有API密钥。 请求格式 plaintext GET /_se…...

AI Agent开发第57课-AI用在销售归因分析场景中-用随机森林从0构建自己的“小模型”

开篇 在前一篇《机器学习的基础-线性回归如何应用在商业场景中》里,我们说到了如果我们只是简单的分析和预测一下投入广告费用和销售额增长是否存在必然关系,我们用了线性回归法得到了分析,得到的分析结果极其精准,以及提到了:如果当销售因素是非线性的并且有着额外一些如…...

Elasticsearch知识汇总之ElasticSearch部署

五 ElasticSearch部署 部署Elasticsearch&#xff0c;可以在任何 Linux、MacOS 或 Windows 机器上运行 Elasticsearch。在Docker 容器 中运行 Elasticsearch 。使用Elastic Cloud on Kubernetes 设置和管理 Elasticsearch、Kibana、Elastic Agent 以及 Kubernetes 上的 Elasti…...

高等数学第五章---定积分(§5.4反常积分)

5.4 反常积分 前面我们学习了定积分 ∫ a b f ( x ) d x \int_a^b f(x) d x ∫ab​f(x)dx&#xff0c;其中积分区间 [ a , b ] [a, b] [a,b] 是有限区间&#xff0c;且被积函数 f ( x ) f(x) f(x) 在 [ a , b ] [a, b] [a,b] 上是连续的&#xff08;或至多有有限个第一类间…...

UE5 ML机械学习肌肉反应与布料反应

在查找Ai过渡动画的过程中,通过米哈游鹿鸣的展示,了解到的机械学习技术 https://dev.epicgames.com/documentation/zh-cn/unreal-engine/using-the-machine-learning-deformer-in-unreal-engine#%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6 https://dev.epicgames.com/documentati…...

UE5 诺伊腾动捕使用笔记

AxisStudio使用说明 诺伊腾动捕有两个软件,分别是AxisStudio和Axis Post 打开软件后选择"工程" 分为两种工程,一种是PN Studio和PN3,这两个工程对于不同的骨骼方式(也可以修改) 以PNStudio的2.0-Carwheel举例 右侧的数据为你的目标骨骼的尺寸,例如我现在是Metahuma…...

【测试开发】概念篇 - 从理解需求到认识常见开发、测试模型

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)

【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&…...

在sheel中运行Spark

RDD基本概念 Resilient Distributed Dataset 叫做弹性分布式数据集&#xff0c;是Spark中最基本的数据抽象&#xff0c;是分布式计算的实现载体&#xff0c;代表一个不可变&#xff0c;可分区&#xff0c;里面的元素并行计算的集合。 Dataset&#xff1a; 一个数据集合&#xf…...

如何从windows中的cursor打开windows里面的wsl中的项目

解决方法&#xff1a; ✅ 步骤 1&#xff1a;在 Windows 中安装 Cursor 首先&#xff0c;确保你已在 Windows 上安装了 Cursor 编辑器。 安装完成后&#xff0c;打开 Cursor 编辑器。​ ✅ 步骤 2&#xff1a;安装并配置 WSL 扩展 为了让 Cursor 与 WSL 集成&#xff0c;需…...

UE5 C++项目实现单例

在 UE5 中,要实现“全局只有一个实例”的单例模式,主要有两种思路:一种是传统 C++ 静态单例,另一种是利用 UE5 提供的Subsystem体系(如 UGameInstanceSubsystem、UWorldSubsystem 等)。下面先给出核心示例代码及对比,随后讨论典型使用场景、优缺点,对常见问题作出诊断并…...

信息论04:从信息熵到互信息——信息共享的数学度量

从信息熵到互信息&#xff1a;信息共享的数学度量 1. 信息论基础概念 1.1 信息熵&#xff08;Information Entropy&#xff09; 定义&#xff1a;信息熵由香农提出&#xff0c;用于量化随机变量的不确定性。对于离散随机变量X&#xff0c;其熵定义为&#xff1a; H ( X ) …...

MYSQL的DDL语言和单表查询

MYSQL的DDL语言和单表查询 Mysql介绍 SQL&#xff08;Structured Query Language&#xff09;是一种专门用于管理和操作关系型数据库的标准化语言&#xff0c;通过定义、查询、更新和控制数据&#xff0c;为应用程序提供一致且高效的持久化存储方式。它包含数据定义语言&…...

奇瑞依托汽车产业链,实现服务机器人万台下线

近日&#xff0c;奇瑞集团旗下墨甲机器人&#xff08;MOJA&#xff09;全球批量交付的消息得到官方确认。这一重大进展不仅标志着奇瑞在服务机器人领域的商业化落地迈出关键一步&#xff0c;更成为国产智能装备进军全球市场的重要里程碑。 墨甲机器人简介 产品定位 墨甲是奇…...

Python Bug 修复案例分析:函数参数传递引发的逻辑错误修复

在 Python 编程学习的过程中&#xff0c;各种意想不到的 Bug 常常会阻碍我们编写的程序的正常运行。这次&#xff0c;我们将围绕一个因函数参数传递导致逻辑错误的案例&#xff0c;深入剖析 Bug 的修复全过程&#xff0c;帮助初学者掌握处理这类问题的方法。 案例背景 最近编写…...

论文阅读笔记——ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors

RoboGround 论文 一类中间表征是语言指令&#xff0c;但对于空间位置描述过于模糊&#xff08;“把杯子放桌上”但不知道放桌上哪里&#xff09;&#xff1b;另一类是目标图像或点流&#xff0c;但是开销大&#xff1b;由此 GeoDEX 提出一种兼具二者的掩码。 相比于 GR-1&#…...

deeplabv3+街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用,cityscapes数据集_23

目录 0、简介1、下载链接1.1、CSDN链接&#xff0c;含权重文件直接使用&#xff0c;建议直接下这个&#xff0c;还不限速。1.2 Github链接&#xff1a; 2、下载代码&#xff0c;下载预训练好的权重3、预测代码4、像素提取&#xff0c;或者说类别提取5、文档部分内容截图6、其他…...

JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧

JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧 引言 在当今快速发展的Web世界中,性能已经成为衡量应用质量的关键指标。随着Web应用复杂度的不断提升,JavaScript作为前端开发的核心语言,其性能优化变得尤为重要。本文旨在全面深入地探讨JavaScript性能优化的各个方…...

第2章——springboot核心机制

一、为何以继承方式引入SpringBoot 1.提出疑问 以前我们在开发项目时&#xff0c;需要什么&#xff0c;引入对应的依赖就行&#xff0c;比如我们需要连接mysql数据&#xff0c;则引入mysql驱动的依赖&#xff0c;如下&#xff1a; <dependency><groupId>com.mys…...

huggingface 热门开源TTS模型Dia-1.6B,支持多人对话生成、情感控制~

简介 Dia-1.6B 是一款由 Nari Labs 开发的开源文本转语音&#xff08;TTS&#xff09;模型&#xff0c;专注于生成自然对话。其项目背景和模型架构基于近期可用的网络信息进行了详细分析&#xff0c;以下是全面的报告。 项目背景概述 Dia-1.6B 的开发始于 Nari Labs&#xff…...

深入理解West:介绍、使用及与Repo的对比

目录 引言 West简介 West的由来 West的核心功能 West的架构与工作流程 West安装与使用 环境准备与安装 Manifest 文件结构解析 常用命令详解与进阶用法 Tip与Troubleshoot 实践案例:基于West的Zephyr项目管理 初始化与同步 构建与闪存 插件示例:自定义命令 Repo简介 Repo的背…...

力扣-hot100 (矩阵置零)

73. 矩阵置零 中等 给定一个 *m* x *n* 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 示…...