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

集合框架(3)Map

Map接口

现实生活与开发中,我们常会看到这样的一类集合:用户ID与账户信息、学生姓名与考试成绩、IP地址与主机名等,这种一一对应的关系,就称作映射。Java提供了专门的集合框架用来存储这种映射关系的对象,即java.util.Map接口。

1、 Map接口概述

  • Map与Collection并列存在。Map用于保存具有映射关系的数据:key-value
    • Collection集合称为单列集合,元素是孤立存在的(理解为单身)。
    • Map集合称为双列集合,元素是成对存在的(理解为夫妻)。
  • Map 中的 key 和 value 都可以是任何引用类型的数据。但常用String类作为Map的“键”(key)。
  • Map接口的常用实现类:HashMapLinkedHashMapTreeMapProperties。其中,HashMap是 Map 接口使用频率最高的实现类

1.1 Map中key-value特点

这里主要以HashMap为例说明。HashMap中存储的key、value的特点如下:

  • Map 中的 key以哈希值排列无序、不允许重复所有的key构成一个Set集合,即key所在的类,须重写hashCode()和equals()方法
  • Map中的value与key一一对应,无序、允许重复。所有的value构成一个Collection集合,即value所在的类需要重新equals()方法。
  • key与value一一对应,就构成了一个个entry,所有的entry构成了一个Set集合
  • key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到唯一的、确定的 value,不同key对应的value可以重复。value所在的类要重写equals()方法。
  • key和value构成一个entry。所有的entry彼此之间是无序的不可重复的
1.2  Map接口的常用方法
  • 添加、修改操作:
    • Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
    • void putAll(Map m):将m中的所有key-value对存放到当前map中
  • 删除操作:
    • Object remove(Object key):移除指定key的key-value对,并返回value
    • void clear():清空当前map中的所有数据
@Test
public void test1(){HashMap hashMap = new HashMap();hashMap.put("Dit",9999);hashMap.put("Qum",18);hashMap.put("99",99);hashMap.put(new Person("Flank",24),"disguise");System.out.println(hashMap);hashMap.remove("99");//移除指定的key-value对System.out.println(hashMap);Object oldVlue = hashMap.put("Qum",20);//因为key值已经存在,所以此处的put方法用于替换已经存在的value值,此时返回Object类的value值,进行接收。System.out.println(oldVlue);//18System.out.println(hashMap);
}
  • 元素查询的操作:
    • Object get(Object key):获取指定key对应的value
    • boolean containsKey(Object key):是否包含指定的key
    • boolean containsValue(Object value):是否包含指定的value
    • int size():返回map中key-value对的个数
    • boolean isEmpty():判断当前map是否为空
    • boolean equals(Object obj):判断当前map和参数对象obj是否相等
  • 元视图操作的方法:
    • Set keySet():返回所有key构成的Set集合
    • Collection values():返回所有value构成的Collection集合
    • Set entrySet():返回所有key-value对构成的Set集合

Map的主要实现类:HashMap

1HashMap概述

  • HashMap是 Map 接口使用频率最高的实现类。
  • HashMap是线程不安全的。允许添加 null 键和 null 值。
  • 存储数据采用的哈希表结构,底层使用一维数组+单向链表+红黑树进行key-value数据的存储。与HashSet一样,元素的存取顺序不能保证一致。
  • HashMap 判断两个key相等的标准是:两个 key 的hashCode值相等,通过 equals() 方法返回 true。
  • HashMap 判断两个value相等的标准是:两个 value 通过 equals() 方法返回 true。

@Test
public void test1(){
    Map map = new HashMap();//HashMap中,key键和value值都可以输入成null

    map.put(null,null);
    System.out.println(map);
}

HashMap集合的遍历方法:

(1) 调用keySet(),建立Set集合,使用迭代器/foreach循环。

Set keySet = hashMap.keySet();//调用hashMap的keySet方法,建立Set集合。
Iterator iterator = keySet.iterator();//利用Set集合的iterator迭代器进行遍历。
while (iterator.hasNext()){System.out.println(iterator.next());
}

(2)调用values(),建立Colletion集合,使用迭代器/foreach循环。

//调用hashMap的values方法,建立Collection集合。
Collection values = hashMap.values();
//使用foreach循环,输出values集合的对象值。
for (Object obj : values){System.out.println(obj);
}

(3)调用entrySet(),建立Set集合,使用迭代器(需要通过Map接口使用entry接口,写作Map.entry)/foreach循环

//调用entrySet方法,建议Set集合,调用迭代器进行遍历。
Set entrySet = hashMap.entrySet();
Iterator iterator = entrySet.iterator();
while (iterator.hasNext()){Map.Entry entry = (Map.Entry) iterator.next();//因为Entry是Map的内部接口,必须通过Map进行调用。//又因为iterator的返回值是Object类,要想使用entry接口中的方法,必须进行强转。System.out.println(entry.getKey()+"-----"+entry.getValue());//调用实现Map.Entry的entry实例中的getkey与getvalue方法
}

2 Map实现类之二:LinkedHashMap

  • LinkedHashMap 是 HashMap 的子类
  • 存储数据采用的哈希表结构+链表结构,在HashMap存储结构的基础上,使用了一对双向链表记录添加元素的先后顺序,可以保证遍历元素时,与添加的顺序一致。
  • 通过哈希表结构可以保证键的唯一、不重复,需要键所在类重写hashCode()方法、equals()方法。
  • 频繁遍历时可以选择使用LinkedHashMap

3Map实现类之三:TreeMap

  • TreeMap存储 key-value 对时,需要根据 key-value 对进行排序。TreeMap 可以保证所有的 key-value 对处于有序状态
  • TreeSet底层使用红黑树结构存储数据
  • TreeMap 的 Key 的排序:
    • 自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException
@Test
public void test1(){TreeMap map = new TreeMap();map.put("QQ","adorable");map.put("hj","silly");map.put("hihi","yeye");map.put("haha","with you");//key必须是同一个类,value可以不同类。//如果key不同类,则报ClassCastExceptionSet entrySet = map.entrySet();for (Object obj:entrySet){System.out.println(obj);}
}
    • 定制排序:创建 TreeMap 时,构造器传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口
  • TreeMap判断两个key相等的标准:两个key通过compareTo()方法或者compare()方法返回0。TreeMap中不再依赖于HashMap()与equals()方法检验key键的相等。
@Test
public void test2(){Comparator comparator = new Comparator() {@Overridepublic int compare(Object o1, Object o2) {if (o1 instanceof Person && o2 instanceof Person){Person P1 = (Person) o1;Person P2 = (Person) o2;int value = P1.getName().compareTo(P2.getName());if (value!=0){return value;}return P1.getAge()- P2.getAge();}throw new RuntimeException("类型不匹配");}};Person p1 = new Person("Qum",18);Person p2 = new Person("Dit",1024);TreeMap treeMap = new TreeMap(comparator);treeMap.put(p1,"miss");treeMap.put(p2,"alone");Set entrySet = treeMap.entrySet();Iterator iterator = entrySet.iterator();while (iterator.hasNext()){Map.Entry entry = (Map.Entry) iterator.next();System.out.println(entry.getKey()+"----"+entry.getValue());}
}

4Map实现类之四:Hashtable

  • Hashtable是Map接口的古老实现类,JDK1.0就提供了。不同于HashMap,Hashtable是线程安全的。
  • Hashtable实现原理和HashMap相同,功能相同。底层都使用哈希表结构(数组+单向链表),查询速度快。
  • 与HashMap一样,Hashtable 也不能保证其中 Key-Value 对的顺序
  • Hashtable判断两个key相等、两个value相等的标准,与HashMap一致。
  • 与HashMap不同,Hashtable 不允许使用 null 作为 key 或 value。

面试题:Hashtable和HashMap的区别

HashMap:底层是一个哈希表(jdk7:数组+链表;jdk8:数组+链表+红黑树),是一个线程不安全的集合,执行效率高
Hashtable:底层也是一个哈希表(数组+链表),是一个线程安全的集合,执行效率低

HashMap集合:可以存储null的键、null的值
Hashtable集合:不能存储null的键、null的值

Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合(HashMap,ArrayList)取代了。所以HashMap是Map的主要实现类,Hashtable是Map的古老实现类。

Hashtable的子类Properties(配置文件)依然活跃在历史舞台
Properties集合是一个唯一和IO流相结合的集合

5Map实现类之五:Properties

  • Properties 类是 Hashtable 的子类,该对象用于处理属性文件
  • 由于属性文件里的 key、value 都是字符串类型,所以 Properties 中要求 key 和 value 都是字符串类型
name=Qum
password=withDit

file中的keyvalue,一般不加入空格,因为无法区分空格是否属于字符串。

  • 存取数据时,建议使用setProperty(String key,String value)方法和getProperty(String key)方法
@Test
public void test1()throws FileNotFoundException, IOException {File file = new File("info.properties");//System.out.println(file.getAbsolutePath());,寻找路径,在相应的module建立fileFileInputStream fls = new FileInputStream(file);//创建流,需要关闭资源Properties pros = new Properties();pros.load(fls);//加载文件中的数据String name = pros.getProperty("name");String password = pros.getProperty("password");System.out.println(name+password);fls.close();
}

相关文章:

集合框架(3)Map

Map接口 现实生活与开发中,我们常会看到这样的一类集合:用户ID与账户信息、学生姓名与考试成绩、IP地址与主机名等,这种一一对应的关系,就称作映射。Java提供了专门的集合框架用来存储这种映射关系的对象,即java.util…...

Java反射机制—Class

Java反射机制是指在运行时动态地获取类的信息以及操作类的成员变量、方法和构造方法的能力。反射机制通过使用Class类来实现,Class类是Java中表示类的类。 通过反射机制,我们可以在运行时动态地创建对象、调用方法、访问属性等。反射机制提供了一种强大…...

C# 新语法中的字符串内插$和{}符号用法详解

自C#6.0开始提供一个新的语法糖,即"$" 符号,配合“{}”使用,它的作用除了是对String.format的简化,还可设置其格式模板,实现了对字符串的拼接优化。 语法格式: $"string {变量表达式}” 语…...

WordPress 独立站是否需要 CDN:深度解析及必要性分析

WordPress 是目前全球最流行的开源内容管理系统(CMS),其易用性和丰富的插件生态使得它成为搭建独立站的首选。然而,随着流量的增加以及用户体验的需求,网站的速度和可靠性变得至关重要。在这种情况下,CDN&a…...

dell电脑开不了机怎么回事?戴尔电脑无法开机解决方法

dell戴尔电脑开不了机,这是很多使用dell电脑用户常遇到的问题。这种故障情况是由多种原因引起,包括硬件故障、软件问题或电源问题等等。dell电脑开不了机怎么办呢?下面便为大家介绍一下相关解决修复方法,帮助用户解决戴尔电脑无法…...

如何解决 JavaScript 中的数组方法不生效?

在 JavaScript 中,数组方法是常用的工具,可以用来对数组进行操作。常见的数组方法包括 push(), pop(), shift(), unshift(), map(), filter(), reduce() 等。 然而,有时候我们会遇到数组方法“失效”或者不按预期工作的情况。这个问题的原因…...

道可云人工智能元宇宙每日资讯|全国工商联人工智能委员会成立会议在南京举办

道可云元宇宙每日简报(2024年12月5日)讯,今日元宇宙新鲜事有: 全国工商联人工智能委员会成立会议在南京举办 全国工商联人工智能委员会成立会议日前在江苏省南京市举办。中央统战部副部长、全国工商联党组书记沈莹出席会议并讲话…...

华为HCIP-Datacom H12-821H12-831 (12月最新题库)

备考HCIP-datacom的小伙伴注意啦 !!! 2024年下半年12月份最新(H12-821和H12-831)题库带解析,有需要的小伙伴移动至文章末 H12-821: H12-831: 1.BGP 邻居建立过程的状态存在以下几种:那么建立一个成功的连接所经历的状态机顺序是 A、3-1-2-5-4 B、1-3-5-2-4 C、…...

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…...

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…...

短视频矩阵系统开发|技术源代码部署

短视频矩阵系统通过多账号运营管理、多平台视频智能分发等功能,助力企业实现视频引流、粉丝沉淀和转化。 短视频矩阵系统是一种创新的营销工具,它整合了多账号管理、视频智能分发、数据可视化等多种功能,为企业在短视频领域的发展提供了强大…...

C# GDI绘制的小熊进度条

C# GDI小熊进度条 1、添加自定义控件winform using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…...

java书 核心技术+卷一+4

5.4 对象包装器与自动装箱 package 反射; import java.util.AbstractList; import java.util.ArrayList; public class test {public static void main(String[] args) {int a10;ArrayList<Integer> xxnew ArrayList<>();xx.add(a); //自动装箱int bxx.get(0);//…...

用Python开发一个经典打砖块小游戏

Python 的 pygame 库让我们可以轻松开发经典的小游戏。今天,我们将实现一个“打砖块”小游戏,带你体验游戏开发的乐趣。 一、游戏设计 1.1 游戏规则 玩家通过移动滑板接住弹起的球。球撞击砖块会让砖块消失,玩家得分。如果球落地,游戏失败。1.2 技术点 碰撞检测:检测球与…...

RTCMultiConnection 跨域问题解决

js套件地址 https://github.com/muaz-khan/RTCMultiConnection server套件地址 https://github.com/muaz-khan/RTCMultiConnection-Server 要解决的就是server代码的跨域问题 原装写法&#xff1a; 解决写法&#xff1a; // 喜欢组合语法的自己组 const io new ioServer.S…...

使用GO--Swagger生成文档

概述 在前后端分离的项目中&#xff0c;后端配置swagger可以很好的帮助前端人员了解后端接口参数和数据传输。go-swagger 是一个功能全面且高性能的Go语言实现工具包&#xff0c;用于处理Swagger 2.0&#xff08;即OpenAPI 2.0&#xff09;规范。它提供了丰富的工具集&#x…...

简易图书管理系统

javawebjspservlet 实体类 package com.ghx.entity;/*** author &#xff1a;guo* date &#xff1a;Created in 2024/12/6 10:13* description&#xff1a;* modified By&#xff1a;* version:*/ public class Book {private int id;private String name;private double pri…...

探索自然语言处理奥秘(NLP)

摘要 自然语言处理&#xff08;NLP&#xff09;是人工智能领域的一个重要分支&#xff0c;它致力于使计算机能够理解、解释和生成人类语言。这项技术让机器能够阅读文本、听懂语音&#xff0c;并与人类进行基本的对话交流。 通俗理解 自然语言处理&#xff08;NLP&#xff09…...

刘铁猛C#入门 030 泛型,partial类,枚举,结构

泛型(generic)无处不在 为什么需要泛型&#xff1a;避免成员膨胀或者类型膨胀 正交性&#xff1a;泛型类型(类/接口/委托/......)泛型成员(属性/方法/字段/....类型方法的参数推断 泛型接口/类的 类型参数不只有一个泛型与委托、lambda表达式实现泛型接口类时 &#xff0c;实现…...

迅雷 11.2.2 | 本地会员版,不限速下载,支持云盘

迅雷 v11.2.2 是一款带网盘功能的绿色版下载工具。双击“!)绿化”文件即可在桌面生成快捷图标。该版本干净简洁&#xff0c;仅保留下载和云盘两项核心功能。点击左上角的【新建】按钮&#xff0c;可新建链接下载任务。即使在网络条件一般的情况下&#xff08;如50M宽带&#xf…...

P3131 [USACO16JAN] Subsequences Summing to Sevens S

题目描述 Farmer Johns NN cows are standing in a row, as they have a tendency to do from time to time. Each cow is labeled with a distinct integer ID number so FJ can tell them apart. FJ would like to take a photo of a contiguous group of cows but, due to a…...

股指期货基差为正数,这是啥意思?

在股指期货的世界里&#xff0c;有个挺重要的概念叫“基差”。说白了&#xff0c;基差就是股指期货的价格和它对应的现货价格之间的差价。今天&#xff0c;咱们就来聊聊当这个基差为正数时&#xff0c;到底意味着啥。 基差是啥&#xff1f; 先复习一下&#xff0c;基差 股指…...

docker自动拉取最新镜像并更新

目录 一、自动检查和更新所有正在运行的容器&#xff08;每24h一次&#xff09; 二、仅仅更新特定的容器&#xff08;每24h一次&#xff09; 三、指定更新间隔&#xff08;300秒&#xff09; 四、Watchtower 不会主动删除旧镜像&#xff0c;使用 --cleanup 参数在更新容器后…...

unicloud微信小程序云端一体项目DEMO

最近应客户需求&#xff0c;做了一个产品展示的云开发小程序&#xff0c;从了解云开发到应用到实际项目的产品demo&#xff0c;希望大家能从中获取到对自己有用的东西。 说下心得体会吧&#xff0c;一般小项目用这种云开发确实会减少很多开发成本&#xff0c;人力成本&#xf…...

Spring+Mybatis 整合所需准备

文章目录 SpringMybatis SpringMybatis 准备pom.xml 项目所需jar文件 <spring.version>4.0.2.RELEASE</spring.version> <!-- spring框架包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</a…...

后端工程师成长路线图

‌后端开发工程师是软件开发领域中的一个重要角色&#xff0c;主要负责平台设计、接口设计和功能实现。他们的主要职责包括服务器端业务开发、架构设计、系统性能调优等。‌ 后端开发工程师的工作内容通常涉及服务器开发、数据库管理、业务逻辑实现等方面。他们需要与前端工程…...

java -jar ./target/pay.war ./target/pay.war 中没有主清单属 为什么?

当你尝试使用 java -jar ./target/pay.war 来启动你的 WAR 包时&#xff0c;遇到的错误是因为该 WAR 包没有包含主清单属性&#xff08;Main-Class&#xff09;。这是因为你的项目是一个 Spring Boot 项目&#xff0c;并且默认是作为 WAR 文件部署到外部容器&#xff08;如 Tom…...

封闭式论文写作--全面掌握ChatGPT-4o的写作技能,掌握提示词使用技巧、文献检索与分析方法,帮助您选定研究方向,提炼学术论文题目

在当今学术研究中&#xff0c;科研人员在撰写论文时面临诸多挑战。首先是信息量的剧增&#xff0c;科研人员需要快速消化新知识&#xff0c;筛选相关信息并清晰表达。但论文写作不仅是信息的罗列&#xff0c;还需要条理清晰、逻辑严密、语言精准&#xff0c;特别是在竞争激烈的…...

解决Centos6.9的yum的失效问题

相信大家&#xff0c;如果遇到了yum问题的话&#xff0c;经常会很头疼&#xff0c;因此&#xff0c;这里给出了两条命令&#xff0c;这里的前提是你的wget是能用的 1、mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2、wget -O /etc/yum.re…...

【日常记录-Java】查看Maven本地仓库的位置

1. 简介 Maven本地仓库主要用于存储和管理项目所需的依赖项&#xff0c;如jar包、pom文件等。默认情况下&#xff0c;其位于用户家目录下的.m2/repository文件夹内。开发者也可以在Maven的配置文件settings.xml中修改本地仓库路径。 2. 方法 2.1 查看settings.xml文件 Maven本…...

软件测试丨Web自动化测试用例录制与编写全攻略

Web自动化测试的功能简介 Web自动化测试主要是使用特定的工具或框架自动执行对Web应用程序进行的测试。通过模拟用户的操作&#xff0c;自动化测试能够验证应用程序的功能及性能。这一过程的大致流程是&#xff1a; 用例设计&#xff1a;明确测试目标、场景及所需功能。录制测…...

.Net学习

1 什么是.NET Core .NET是开发平台&#xff0c;.NET Framework、.NET Core、Xamaarin/Mono的统称。 .NET Framework是只能在Windows上开发的技术 .NET Core是可以跨平台开发的技术 Xamaarin/Mono是移动端开发的技术 .NET Core&#xff1a;跨平台、免费、开源&#xff0c;可…...

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序

2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分&#xff08;包括支架&#xff09;、LED灯头、控制箱&#xff08;包含控制器、蓄电池&#xff09;、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…...

Spring Cloud Zookeeper 快速入门demo

1.什么是Spring Cloud Zookeeper &#xff1f; Spring Cloud Zookeeper 是一个用于构建分布式系统的工具&#xff0c;它利用 Apache Zookeeper 提供的服务来实现服务注册与发现、配置管理、负载均衡等功能。具体来说&#xff0c;Spring Cloud Zookeeper 可以做以下几件事情&am…...

防火墙有什么作用

防火墙的作用&#xff1a;1. 提供网络安全防护&#xff1b;2. 实施访问控制和流量过滤&#xff1b;3. 检测和阻止恶意攻击&#xff1b;4. 保护内部网络免受未经授权的访问&#xff1b;5. 监控网络流量和安全事件&#xff1b;6. 支持虚拟专用网络&#xff08;VPN&#xff09;。防…...

使用aspx,完成一个转发http的post请求功能的api接口,url中增加目标地址参数,传递自定义header参数

使用aspx&#xff0c;完成一个转发http的post请求功能的api接口&#xff0c;url中增加目标地址参数&#xff0c;传递自定义header参数 首先&#xff0c;简单实现一下&#xff0c;如何在ASPX页面中实现这个功能实现代码说明&#xff1a;注意事项&#xff1a; 然后进阶&#xff0…...

ES使用script进行复杂排序

es数据字段&#xff0c;关注_source内容&#xff0c;为自定义的es表字段内容 {"clerk_id": 3150036230,"clerk_follow_status": 60,"create_time": 1729156110000,"channel": 1,"mid": 1538020071,"binlog_timestamp&…...

大数据技术Kafka详解 ② | Kafka基础与架构介绍

目录 1、kafka的基本介绍 2、kafka的好处 3、分布式发布与订阅系统 4、kafka的主要应用场景 4.1、指标分析 4.2、日志聚合解决方法 4.3、流式处理 5、kafka架构 6、kafka主要组件 6.1、producer(生产者) 6.2、topic(主题) 6.3、partition(分区) 6.4、consumer(消费…...

观察者模式的理解和实践

引言 在软件开发中&#xff0c;设计模式是开发者们为了解决常见的设计问题而总结出来的一系列最佳实践。观察者模式&#xff08;Observer Pattern&#xff09;是其中一种非常经典且使用率极高的设计模式。它主要用于定义对象之间的一对多关系&#xff0c;使得当一个对象的状态发…...

Web3.0:连接分布式未来的纽带

随着技术的不断进步&#xff0c;Web3.0正逐渐成为人们关注的焦点。作为Web的下一代&#xff0c;Web3.0将引领我们进入一个全新的数字时代&#xff0c;重新定义了我们与互联网的关系 Web3.0&#xff0c;也称为“分布式Web”&#xff0c;是互联网的下一代演进。它不仅是信息的传…...

鸿蒙Next通过oss上传照片到阿里云

前言 最近在写纯血鸿蒙的APP&#xff0c;需要用到oss上传照片&#xff0c;之前的客户端 Android 和 IOS 都已经实现了&#xff0c;获取的阿里云签名的上传地址是服务端实现的&#xff0c;相信大部分公司都是这样的模式&#xff0c;服务端也是调用阿里云的SDK来实现的&#xff…...

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 一、效果展示 **博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a;我的百宝工具箱 二、示例代码 1.1、在自己的小程序中创建组件 1.2、组件…...

Django异步视图adrf解决办法

提问 在Django编写异步视图的时候会出现 AssertionError: Expected a Response, HttpResponse or HttpStreamingResponse to be returned from the view 或者 TypeError: sync_to_async can only be applied to sync functions. 诸如此类的错误的时候一般发生在异步视图中…...

C++:类和对象(2)

1. 类的默认成员函数&#xff1a; 类的默认成员函数就是用户没有显示实现&#xff0c;编译器会自动生成的成员函数称为默认成员函数。一个类&#xff0c;我们不写的情况下编译器会默认生成6个默认成员函数&#xff08;构造函数&#xff0c;析构函数&#xff0c;拷贝构造函数&a…...

.NET用C#导入Excel数据到数据库

将Excel文件中的数据导入到数据库中不仅能够提升数据处理的效率和准确性&#xff0c;还能极大地促进数据分析和决策制定的过程。尤其在企业级应用中&#xff0c;Excel作为数据输入和初步整理的工具非常普遍&#xff0c;但其功能对于复杂查询、大规模数据管理和跨部门的数据共享…...

市场上显卡型号需求分析

两个平台统计&#xff1a;&#xff08;关键词统计&#xff0c;仅做参考&#xff09; GPU型号&#xff5c;平台 github(提交量/万) huggingface&#xff08;模型量/个&#xff09; H100 6.6 210 A100 17.2 483 V100 14.4 484 4090 27.3 31 3090 11.1 92 在git…...

IO模型分类

IO模型分类 简单了解 阻塞I/O 当用户程序执行read&#xff0c;线程被阻塞&#xff0c;等待两个过程&#xff0c;内核数据准备好和数据从内核态拷贝到用户态。read才返回 非阻塞I/O 非阻塞的read请求在还没准备好数据就返回&#xff0c;期间程序不断轮询内核直到数据准备完…...

使用API有效率地管理Dynadot域名,查看域名优惠信息

前言 Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮箱&…...

QT 中 QMessageBox 的简单用法

效果 思路 // 创建一个question弹出对话框&#xff0c;添加两个按钮&#xff1a;Yes和NoQMessageBox *box new QMessageBox(QMessageBox::Question, "提示", "确认删除的信息吗&#xff1f;", QMessageBox::Yes | QMessageBox::No, this);box->button(…...

2024-12-6-sklearn学习(4) 支持向量机 吴楚东南坼,乾坤日夜浮。

文章目录 sklearn学习(4) 支持向量机4.1 分类4.1.1 多元分类4.1.2 得分和概率4.1.3 非均衡问题 4.2 回归4.3 密度估计, 异常&#xff08;novelty&#xff09;检测4.4 复杂度4.5 使用诀窍(Tips on Practical Use)4.6 核函数4.6.1 自定义核4.6.1.1 使用 python 函数作为内核4.6.1…...