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

Java算法 数据结构 栈 队列 优先队列 比较器

目录

栈 Stack

性质

构造

方法

代码示例

队列 Queue

性质

构造

方法

代码示例

优先队列 PriorityQueue

性质

构造

方法

代码示例

比较器

1. Comparator 接口的方法

2. 常见的内置比较器

1. 自然排序比较器(naturalOrder())

2. 逆序排序比较器(reverseOrder())

3. nullsFirst() 和 nullsLast()

3. 示例:常用的比较器

自定义类使用 Comparator 排序

输出:

4. 多重排序

5. 使用 Comparator 的常见场景

1. PriorityQueue

2. Collections.sort()

3. Arrays.sort()

6. 自定义比较器的实现方式

1. 使用匿名类实现 Comparator:

2. 使用 Lambda 表达式实现 Comparator(推荐):

3. 使用方法引用实现 Comparator:

7. 总结


栈 Stack

性质

后进先出

可以弹出栈顶元素 或者返回栈顶元素(不删除)

后压入栈的元素先出来

构造

  • 创建栈对象

Stack<Integer> stack = new Stack<>(); 创建了一个类型为 Integer 的栈。

方法

  • push():将元素压入栈中。
  • peek():查看栈顶元素,但不移除它。
  • pop():移除并返回栈顶元素。
  • size():获取栈中元素的数量。
  • isEmpty():判断栈是否为空。

代码示例

import java.util.Stack;public class StackExample {public static void main(String[] args) {// 创建一个栈对象Stack<Integer> stack = new Stack<>();// 入栈stack.push(10);stack.push(20);stack.push(30);// 查看栈顶元素System.out.println("栈顶元素: " + stack.peek());// 出栈System.out.println("出栈元素: " + stack.pop());System.out.println("栈顶元素: " + stack.peek());// 查看栈的大小System.out.println("栈的大小: " + stack.size());// 判断栈是否为空if (stack.isEmpty()) {System.out.println("栈为空");} else {System.out.println("栈不为空");}}
}

队列 Queue

先进先出

可以移除队列头部元素 并且获取这个元素

也可以获取队列头部元素(不删除)

先进入队列的元素先出来

性质

构造

Queue<Integer> queue = newLinkedList<>();

创建了一个类型为 Integer 的队列。

方法

  • offer(E e):将元素 e 加入队列,若队列没有满(在 LinkedList 实现中,offer() 通常会成功)。
  • peek():返回队列头部元素,但不删除它。若队列为空,返回 null
  • poll():移除并返回队列头部的元素。如果队列为空,返回 null
  • size():获取队列中的元素个数。
  • isEmpty():判断队列是否为空。

代码示例

import java.util.Queue;
import java.util.LinkedList;public class QueueExample {public static void main(String[] args) {// 创建一个队列对象Queue<Integer> queue = new LinkedList<>();// 入队queue.offer(10);queue.offer(20);queue.offer(30);// 查看队列头部元素System.out.println("队列头部元素: " + queue.peek());// 出队System.out.println("出队元素: " + queue.poll());System.out.println("队列头部元素: " + queue.peek());// 查看队列的大小System.out.println("队列的大小: " + queue.size());// 判断队列是否为空if (queue.isEmpty()) {System.out.println("队列为空");} else {System.out.println("队列不为空");}}
}

优先队列 PriorityQueue

性质

PriorityQueue 是一个优先级队列,它会按照元素的自然顺序或指定的比较器排序。在 PriorityQueue 中,出队的顺序是根据元素的优先级(大小或比较器的排序规则)来决定的。

构造

PriorityQueue<Integer> priorityQueue = newPriorityQueue<>();

方法

  • add(E e):将元素 e 插入到队列中。如果队列已满(取决于实现的容量限制),则抛出异常。
  • offer(E e):将元素 e 插入队列。如果队列容量已满,则返回 false,不会抛出异常。这个方法通常更安全,推荐使用。
  • poll():移除并返回队列头部的元素(优先级最高的元素)。如果队列为空,返回 null
  • peek():返回队列头部的元素(优先级最高的元素),但不移除它。如果队列为空,返回 null
  • remove():移除队列中的一个元素。通常情况下,poll() 是更常用的出队操作。
  • size():返回队列中元素的个数。
  • isEmpty():检查队列是否为空。
  • clear():清空队列中的所有元素。

代码示例

import java.util.PriorityQueue;public class PriorityQueueExample {public static void main(String[] args) {// 创建一个优先级队列对象PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();// 入队priorityQueue.offer(30);priorityQueue.offer(10);priorityQueue.offer(20);// 查看队列头部元素System.out.println("队列头部元素: " + priorityQueue.peek());// 出队System.out.println("出队元素: " + priorityQueue.poll());System.out.println("队列头部元素: " + priorityQueue.peek());// 查看队列的大小System.out.println("队列的大小: " + priorityQueue.size());}
}

比较器

1. Comparator 接口的方法

Comparator 接口包含以下几个方法:

  • compare(T o1, T o2):比较 o1o2,如果返回值为负数,则 o1 排在 o2 之前;如果返回值为零,则 o1o2 相等;如果返回值为正数,则 o1 排在 o2 之后。
  • reversed():返回一个与当前比较器顺序相反的比较器。
  • thenComparing(Comparator<? super T> other):如果 compare() 方法返回 0,则继续使用另一个比较器 other 进行比较。
  • naturalOrder():返回一个自然排序的比较器(升序)。
  • reverseOrder():返回一个逆序排序的比较器(降序)。
  • nullsFirst() / nullsLast():处理 null 值的排序,nullsFirst() 会将 null 值排在前面,nullsLast() 会将 null 值排在后面。

2. 常见的内置比较器

1. 自然排序比较器(naturalOrder()

Comparator.naturalOrder() 返回一个自然排序的比较器,通常是升序排序。适用于实现了 Comparable 接口的对象。

java复制代码
Comparator<Integer> naturalOrder = Comparator.naturalOrder();
2. 逆序排序比较器(reverseOrder()

Comparator.reverseOrder() 返回一个降序排序的比较器。

java复制代码
Comparator<Integer> reverseOrder = Comparator.reverseOrder();
3. nullsFirst()nullsLast()

这两个方法用来处理 null 值的排序:

  • nullsFirst():将 null 值排在前面。
  • nullsLast():将 null 值排在后面。
java复制代码
Comparator<String> nullsFirst = Comparator.nullsFirst(Comparator.naturalOrder());
Comparator<String> nullsLast = Comparator.nullsLast(Comparator.naturalOrder());

3. 示例:常用的比较器

自定义类使用 Comparator 排序

假设我们有一个 Person 类,包含 nameage 字段,我们可以根据不同的字段排序。

java复制代码
import java.util.*;class Person {String name;int age;Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return name + ": " + age;}
}public class ComparatorExample {public static void main(String[] args) {List<Person> people = Arrays.asList(new Person("Alice", 30),new Person("Bob", 25),new Person("Charlie", 35));// 按年龄升序排序Comparator<Person> byAge = Comparator.comparingInt(p -> p.age);Collections.sort(people, byAge);System.out.println("按年龄升序排序:" + people);// 按名字升序排序Comparator<Person> byName = Comparator.comparing(p -> p.name);Collections.sort(people, byName);System.out.println("按名字升序排序:" + people);// 按年龄降序排序Comparator<Person> byAgeDesc = Comparator.comparingInt(Person::getAge).reversed();Collections.sort(people, byAgeDesc);System.out.println("按年龄降序排序:" + people);}
}
输出:
yaml复制代码
按年龄升序排序:[Bob: 25, Alice: 30, Charlie: 35]
按名字升序排序:[Alice: 30, Bob: 25, Charlie: 35]
按年龄降序排序:[Charlie: 35, Alice: 30, Bob: 25]

4. 多重排序

如果我们希望对多个属性进行排序,可以使用 thenComparing() 方法。例如,按 age 排序,如果年龄相同,则按 name 排序:

java复制代码
Comparator<Person> byAgeThenName = Comparator.comparingInt(Person::getAge).thenComparing(Person::getName);Collections.sort(people, byAgeThenName);

5. 使用 Comparator 的常见场景

1. PriorityQueue

在使用 PriorityQueue 时,你可以通过传递自定义的 Comparator 来指定队列中的优先级顺序。例如,按降序排列整数:

java复制代码
PriorityQueue<Integer> pq = new PriorityQueue<>(Comparator.reverseOrder());
pq.offer(10);
pq.offer(20);
pq.offer(30);while (!pq.isEmpty()) {System.out.println(pq.poll());  // 输出:30, 20, 10
}
2. Collections.sort()

你可以在排序时传递自定义的比较器。例如,按字符串的长度排序:

java复制代码
List<String> strings = Arrays.asList("apple", "banana", "pear", "grape");Collections.sort(strings, Comparator.comparingInt(String::length));System.out.println(strings);  // 输出:[pear, apple, grape, banana]
3. Arrays.sort()

Arrays.sort() 也可以接受一个比较器。例如,按数字的降序排列:

java复制代码
Integer[] numbers = {3, 1, 4, 1, 5, 9};
Arrays.sort(numbers, Comparator.reverseOrder());
System.out.println(Arrays.toString(numbers));  // 输出:[9, 5, 4, 3, 1, 1]

6. 自定义比较器的实现方式

1. 使用匿名类实现 Comparator
java复制代码
Comparator<Person> byName = new Comparator<Person>() {@Overridepublic int compare(Person p1, Person p2) {return p1.name.compareTo(p2.name);}
};
2. 使用 Lambda 表达式实现 Comparator(推荐):
java复制代码
Comparator<Person> byName = (p1, p2) -> p1.name.compareTo(p2.name);
3. 使用方法引用实现 Comparator
java复制代码
Comparator<Person> byName = Comparator.comparing(Person::getName);

7. 总结

Java 提供了多种方式来实现比较器 Comparator,你可以:

  • 使用内置的 Comparator 方法(如 naturalOrder()reverseOrder()nullsFirst() 等)。
  • 定制比较器,使用 Comparator.comparing()thenComparing() 等进行多重排序。
  • 使用自定义 Comparator 对象来排序集合,如 PriorityQueueCollections.sort()Arrays.sort() 等。

通过灵活地使用这些比较器,你可以对各种类型的对象进行多样化的排序。

4o

相关文章:

Java算法 数据结构 栈 队列 优先队列 比较器

目录 栈 Stack 性质 构造 方法 代码示例 队列 Queue 性质 构造 方法 代码示例 优先队列 PriorityQueue 性质 构造 方法 代码示例 比较器 1. Comparator 接口的方法 2. 常见的内置比较器 1. 自然排序比较器&#xff08;naturalOrder()&#xff09; 2. 逆序排…...

安装本地测试安装apache-doris

一、安装前规划 我的服务器是三台麒麟服务器,2台跑不起来,这是我本地的,内存分配的也不多。 fe192.168.1.13 主数据库端口9030访问 8Gbe192.168.1.13内存4G 硬盘50be192.168.1.14内存4G 硬盘50be192.168.1.12内存4G 硬盘5013同时安装的fe和be 。 原理:192.168.1.13 服…...

CSS | 实现三列布局(两边边定宽 中间自适应,自适应成比)

目录 示例1 &#xff08;中间自适应 示例2&#xff08;中间自适应 示例3&#xff08;中间自适应 示例4 &#xff08;自适应成比 示例5&#xff08;左中定宽&#xff0c;右边自适应 示例6&#xff08;中间自适应 示例7&#xff08;中间自适应 示例8&#xff08;中间定宽…...

Centos8部署Redis Cluster

Redis Cluster 通过分片方式实现高可用,数据分布在多个节点,支持水平扩展。 1、环境准备 一般建议准备六个节点(推荐 3 个主节点 + 3 个从节点) 2、配置Redis Cluster模式 2.1、配置文件 修改 redis.conf: 每个节点的配置应包括以下内容: port <port> …...

如何通过openssl生成.crt和.key

生成 .crt&#xff08;证书文件&#xff09;和 .key&#xff08;私钥文件&#xff09;的过程通常涉及使用加密工具或库来创建密钥对&#xff0c;并生成证书请求&#xff0c;最终由证书颁发机构&#xff08;CA&#xff09;或自签名生成证书。以下是生成 .crt 和 .key 文件的详细…...

Vue.js组件开发-使用地图绘制轨迹

在Vue.js中开发一个组件来展示地图并绘制轨迹&#xff0c;可以使用诸如Leaflet.js、Mapbox GL JS或百度地图等地图库。这些库提供了丰富的API来创建和定制地图&#xff0c;以及绘制路径、标记和其他地图元素。 示例&#xff1a; 1. 安装Leaflet.js 首先&#xff0c;需要安装…...

大数据技术在智能制造中的应用前景

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…...

iOS 解决两个tableView.嵌套滚动手势冲突

我们有这样一个场景&#xff0c;就是页面上有一个大的tableView&#xff0c; 每一个cell都是和屏幕一样高的&#xff0c;然后cell中还有一个可以 tableView&#xff0c;比如直播间的情形&#xff0c;这个时候如果我们拖动 cell里面的tableView滚动的话&#xff0c;如果滚动到内…...

认识机器学习中的结构风险最小化准则

上一篇文章我们学习了关于经验风险最小化准则&#xff0c;其核心思想是通过最小化训练数据上的损失函数来优化模型参数&#xff0c;从而提高模型在训练集上的表现。但是这也会导致一个问题&#xff0c;经验风险最小化原则很容易导致模型在训练集上错误率很低&#xff0c;但在未…...

Java定时任务

在 Java 中&#xff0c;定时任务通常用于在特定时间或间隔执行某个操作。Java 提供了多种方式来实现定时任务&#xff0c;包括使用 Timer 类、ScheduledExecutorService 和 Spring 框架中的定时任务功能。下面将介绍这些常见的方法。 1. 使用 Timer 类 Timer 类可以用来安排任…...

[Effective C++]条款46 友元非成员函数

本文初发于 “天目中云的小站”&#xff0c;同步转载于此。 条款46 : 需要类型转换时请为模板定义友元非成员函数 本条款是条款24的延申讨论, 在引入模板的前提下, 如果我们想实现某些隐式类型转换的操作, 会需要比以往多一些额外的操作, 让我们通过本条款来理解. 前提引入 还…...

Android Room 持久化库的介绍及使用方法

Android Room 是 Android Jetpack 组件之一&#xff0c;是 Google 官方推出的用于简化 SQLite 数据库操作的持久化库。它提供了一个抽象层&#xff0c;允许开发者在 SQLite 数据库上执行常见的 CRUD 操作&#xff0c;同时处理数据库连接、数据迁移和查询优化等底层细节。 Andr…...

《零基础Go语言算法实战》【题目 2-22】Go 调度器优先调度问题

《零基础Go语言算法实战》 【题目 2-22】Go 调度器优先调度问题 下面代码的输出是什么&#xff1f;请说明原因。 package main import ( "fmt" "runtime" "sync" ) func main() { runtime.GOMAXPROCS(1) wg : sync.WaitGroup{} wg.Add(10)…...

win10电脑 定时关机

win10电脑 定时关机 https://weibo.com/ttarticle/p/show?id2309405110707766296723 二、使用任务计划程序设置定时关机打开任务计划程序&#xff1a; 按下“Win S”组合键&#xff0c;打开搜索框。 在搜索框中输入“任务计划程序”&#xff0c;然后点击搜索结果中的“任务…...

解决 VSCode 调试时 Python 文件出现相对路径报错问题‘FileNotFoundError’

文章目录 1. 问题描述2. 解决方法 1. 问题描述 在使用 VSCode 进行 Python 开发时&#xff0c;遇到一个的问题&#xff1a;在调试模式下&#xff0c;程序无法读取文件或路径&#xff0c;导致File Not Found Error 错误。然而&#xff0c;当不使用调试模式而是直接运行 Python 文…...

四数相加力扣--454

目录 题目 思路 代码 题目 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输…...

C# 下 SQLite 并发操作与锁库问题的 5 种解决方案

开篇&#xff1a;你是否被 SQLite 并发锁库困扰&#xff1f; 在当今数字化的时代浪潮中&#xff0c;数据已然成为了企业与开发者们手中最为宝贵的资产之一。C# 作为一门广泛应用于各类软件开发的强大编程语言&#xff0c;常常需要与数据库进行紧密交互&#xff0c;以实现数据的…...

正则表达式基础

由于最近做的项目涉及到比较多的转义字符&#xff0c;转义字符长时间不用已经遗忘了&#xff0c;每次需要的时候就需要找到ai生成&#xff0c;或者网络上搜索&#xff0c;所以复习一遍。 正则表达式&#xff08;regular expression&#xff09; 功能&#xff1a;字符串模式匹…...

QT在 MacOS X上,如何检测点击程序坞中的Dock图标

最近在开发MacOS的qt应用&#xff0c;在做到最小化系统托盘功能时&#xff0c;发现关闭窗口后再次点击程序坞中的Dock图标不能将主界面再显示出来。查询里很多资料&#xff0c;发现是QT自身的问题&#xff0c;没有做相关的点击Dock图标的处理。 于是我参考了国内和国外的这两篇…...

Pgsql存储占用分析

基础命令 -- 查询表大小 SELECT pg_total_relation_size(table_name);-- 查询表大小&#xff08;不带索引&#xff09; SELECT pg_table_size(table_name);-- 查询表索引大小 SELECT pg_indexes_size(table_name);-- 查询表具体大小 SELECT pg_relation_size(table_name); SEL…...

【C语言】字符串函数详解

文章目录 Ⅰ. strcpy -- 字符串拷贝1、函数介绍2、模拟实现 Ⅱ. strcat -- 字符串追加1、函数介绍2、模拟实现 Ⅲ. strcmp -- 字符串比较1、函数介绍2、模拟实现 Ⅳ. strncpy、strncat、strncmp -- 可限制操作长度Ⅴ. strlen -- 求字符串长度1、函数介绍2、模拟实现&#xff08…...

CRMEB多商户商城系统JAVA版 B2B2C商家入驻平台系统独立版全开源

系统框架 基于Java vueuni-app开发&#xff0c;并采用业界主流开发框架SpringBoot; 前端开发中&#xff0c;Web PC管理端使用vue element山&#xff0c;移动端使用uni-app框架&#xff0c;前后端分离开发;...

【Linux】进程状态

一、概念 我们需要知道进程的不同状态。一个进程可以有几个状态&#xff08;在Linux内核里&#xff0c;进程有时候也叫做任务&#xff09; 在操作系统原理中&#xff1a;运行状态分为以下三种&#xff1a;运行状态&#xff08;执行&#xff09;、阻塞状态、就绪状态 1. 运行状…...

深入理解计算机系统阅读笔记-第十二章

第12章 网络编程 12.1 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型的。根据这个模型&#xff0c;一个应用时由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源&#xff0c;并且通过操作这种资源来为它的客户端提供某种服务。例如&#xf…...

《C++11》nullptr介绍:从NULL说起

在C11之前&#xff0c;我们通常使用NULL来表示空指针。然而&#xff0c;NULL在C中有一些问题和限制&#xff0c;这就是C11引入nullptr的原因。本文将详细介绍nullptr的定义、用法和优点。 1. NULL的问题 在C中&#xff0c;NULL实际上是一个整数0&#xff0c;而不是一个真正的…...

Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统系列文章(四)

文章目录 概要1 Realsense相机驱动安装Method1: 使用Intel服务器预编译包Method2: 使用ROS服务器预编译包Method3: 使用SDK源代码方法对比总结 2 Realsense-ROS通讯配置与使用2.1 Realsense-ROS包安装2.2 ROS节点启动 小结Reference 概要 本文首先阐述了Realsense相机驱动安装…...

conntrack iptables 安全组

centos 安装yum install conntrack-tools 1. conntrack状态 NEW: 新建连接&#xff08;第一次包&#xff09;。 ESTABLISHED: 已建立连接&#xff0c;正在传输数据。 RELATED: 与已有连接相关的连接&#xff0c;如 FTP 数据连接。 INVALID: 无效连接&#xff0c;无法识别或不…...

基于springboot+vue的 嗨玩-旅游网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

SQL多表联查、自定义函数(字符串分割split)、xml格式输出

记录一个报表的统计&#xff0c;大概内容如下&#xff1a; 多表联查涉及的报表有&#xff1a;房间表、买家表、合同表、交易表、费用表、修改记录表 注意&#xff1a;本项目数据库使用的是sqlserver&#xff08;mssql&#xff09;&#xff0c;非mysql。 难点1:业主信息&#…...

神经网络

“损失函数 王木头学科学-哔哩哔哩_bilibili 一、transformer和注意力机制的本质&#xff0c;以及编码和解码的结构及其与注意力机制的关系&#xff0c;帮助理解transformer的优势和应用场景。 00:01 - 介绍transformer是人工智能主流技术&#xff0c;大语言模型GBT是在其基础…...

C16.【C++ Cont】string类字符串的关系运算和与string有关的函数

目录 1.知识回顾:strcmp函数 2.六个关系运算符 示例代码1 运行结果 示例代码2 运行结果 3.stoi和stol函数 1.stoi函数 函数声明 使用说明 示例代码3 运行结果 示例代码4 运行结果 示例代码5 运行结果 示例代码6 运行结果 2.stol函数 4.stod和stof函数 1.s…...

深入剖析 Wireshark:网络协议分析的得力工具

在网络技术的广阔领域中&#xff0c;网络协议分析是保障网络正常运行、优化网络性能以及进行网络安全防护的关键环节。而 Wireshark 作为一款开源且功能强大的网络协议分析工具&#xff0c;在网络工程师、安全专家以及网络技术爱好者中广受欢迎。本文将深入介绍 Wireshark 的功…...

七大排序算法(Java,便于理解)

时间换空间排序算法 一.冒泡排序 package SortDemo;import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue;public class BubbleSort {//冒泡排序,相邻两个数两两比较private int[]a;public void swap(int i,int j){int tempa[i];a[i]a[j];…...

洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 c语言

题目&#xff1a; P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 题目描述 伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作&#xff0c;因为他有一个漂亮的新伐木机&#xff0c;可以如野火一般砍伐森林。不过&#xff0c;Mirko…...

MySQL8.0新特性

第十八章_MySQL8.0新特性 1.新特性概述 1. 数据库管理和存储 1.1 数据字典 特性: MySQL 8.0 使用统一的数据字典存储元数据&#xff08;如表、列、索引等&#xff09;&#xff0c;并将其存储在 InnoDB 表中。 优点 : 提升性能&#xff1a;减少对文件系统的依赖。 提高一致…...

Browser-Use Web UI:浏览器自动化与AI的完美结合

Browser-Use Web UI:浏览器自动化与AI的完美结合 前言简介一、克隆项目二、安装与环境配置1. Python版本要求2. 安装依赖3. 安装 Playwright4. 配置环境变量(非必要步骤)三、启动 WebUI四、配置1. Agent设置2. 大模型设置3. 浏览器相关设置4. 运行 Agent结语前言 Web UI是在…...

006-excel数据输出insert语句

一、在空白列插入&#xff0c;选择需要的列 "INSERT INTO tab_name1 (code, name) VALUES ("&A1&", "&B1&");"二、 拖动填充块&#xff0c;或者双击填充块&#xff08;可以快速填充整列&#xff09; 三、直接把生成的 insert 语…...

AI大模型如何赋能电商行业并引领变革?

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于AI大模型如何赋能电商行业并引领变革的相…...

食堂采购系统源码:基于PHP的校园食堂供应链管理平台开发全解析

传统的食堂采购管理普遍存在信息不透明、流程繁琐、效率低下等问题&#xff0c;这使得开发一款高效、智能的食堂采购系统变得尤为重要。本篇文章&#xff0c;笔者将详细解析基于PHP开发的校园食堂供应链管理平台&#xff0c;从功能设计、系统架构到技术实现&#xff0c;全方位剖…...

【2024华为OD-E卷-100分-字符串分割】(题目+思路+JavaC++Python解析)

题目 字符串分割 给定一个字符串 s 和一个整数 k&#xff0c;你需要将字符串 s 分割成恰好 k 个非空子字符串&#xff0c;使得这些子字符串中字典序最大的子字符串尽可能小。 输入&#xff1a; 第一行输入一个字符串 s&#xff08;只包含小写字母&#xff09;。第二行输入一…...

MCP Server开发的入门教程(python和pip)

使用python技术栈开发的简单mcp server 需要安装 MCP server的需要使用python-sdk,python需要 3.10,安装如下 pip install mcpPS: MCP官方使用的是uv包管理工具,我平时使用pip比较多,所以文中以pip为主。因为mcp的一些依赖包版本并不是最新的,所以最好弄一个干净的环境…...

我的年度总结

这一年的人生起伏&#xff1a;从曙光到低谷再到新的曙光 其实本来没打算做年度总结的&#xff0c;无聊打开了帅帅的视频&#xff0c;结合自己最近经历的&#xff0c;打算简单聊下。因为原本打算做的内容会是一篇比较丧、低能量者的呻吟。 实习生与创业公司的零到一 第一段工…...

48_Lua错误处理

在编写Lua应用时,都可能会遇到不可预见的错误,而错误处理是确保程序稳定性和健壮性的关键环节。有效的错误处理不仅能防止程序崩溃,还能提供有用的反馈信息给开发者或最终用户,从而提高应用程序的质量。本文将详细介绍Lua中的错误处理机制。 1.错误类型 Lua中的错误类型主…...

掌握 React 关键:理解 super () 和 super (props) 的不同应用

在 React 中&#xff0c;super() 和 super(props) 都与 React 类组件的构造函数&#xff08;constructor&#xff09;以及继承有关。为了理解它们之间的区别&#xff0c;我们需要了解 JavaScript 类继承机制以及 React 类组件的工作原理。 1. super() 与 super(props) 的区别 …...

type 属性的用途和实现方式(图标,表单,数据可视化,自定义组件)

1.图标类型 <uni-icon>组件中&#xff0c;type可以用来指定图标的不同样式。 <uni-icons type"circle" size"30" color"#007aff"></uni-icons> //表示圆形 <uni-icons type"square" size"30" co…...

scala基础学习_方法函数

文章目录 方法与函数函数&#xff08;又称函数值/匿名函数&#xff09;定义方法注意 单参数函数多参数函数函数作为参数传递 方法将方法转换为函数方法的返回值总结 方法与函数 函数&#xff08;又称函数值/匿名函数&#xff09; 定义在任何地方&#xff1a;函数可以定义在类…...

linux: 文本编辑器vim

文本编辑器 vi的工作模式 (vim和vi一致) 进入vim的方法 方法一:输入 vim 文件名 此时左下角有 "文件名" 文件行数,字符数量 方法一: 输入 vim 新文件名 此时新建了一个文件并进入vim,左下角有 "文件名"[New File] 灰色的长方形就是光标,输入文字,左下…...

《深入理解Mybatis原理》Mybatis中的缓存实现原理

一级缓存实现 什么是一级缓存&#xff1f; 为什么使用一级缓存&#xff1f; 每当我们使用MyBatis开启一次和数据库的会话&#xff0c;MyBatis会创建出一个SqlSession对象表示一次数据库会话。 在对数据库的一次会话中&#xff0c;我们有可能会反复地执行完全相同的查询语句&…...

【Debug】django.db.utils.OperationalError: (1040, ‘Too many connections‘)

报错&#xff1a; django.db.utils.OperationalError: (1040, ‘Too many connections‘) 排查 可能是Mysql的连接数量超过了允许的最大连接数量&#xff1b; 查看Mysql允许最大连接数量&#xff1a; -- 查看允许连接的最大数量 SHOW VARIABLES LIKE %max_connections%;-- 查…...

常用教程备份

1.Ubuntu 系统软件安装教程 https://blog.csdn.net/weixin_51591021/article/details/134363237 2.Docker 教程 https://blog.csdn.net/weixin_51591021/article/details/134363849 3.Makefile 教程 https://blog.csdn.net/weixin_51591021/article/details/134363638 4.…...