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

Javase 基础复习 函数式接口 lambda表达式 方法应用

目录

案例1

案例2

1. 函数式接口 (Functional Interface)

特点:

示例:

Java 8 引入了几个常用的函数式接口:

2. Lambda 表达式

语法解析:

示例:

3. 方法引用 (Method References)

示例:

4. 方法应用

示例:

总结

相似点:Lambda 表达式和方法引用

不同点:Lambda 表达式和方法引用的区别

1. 语法和结构不同

2. 功能和灵活性

3. 简洁性

4. 应用场景

示例对比

总结:


这边首先是写了两个案例

案例1

来源黑马程序员

接入函数式接口

import java.util.*;
import java.util.function.*;public class Main {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("鲁迅", "这句话是我说的");map.put("曹操", "不可能绝对不可能");map.put("刘备", "接着奏乐接着舞");map.put("柯镇恶", "看我眼色行事");// 接入函数式接口map.forEach(new BiConsumer<String, String>() {@Overridepublic void accept(String key, String value) {System.out.println(key + "=" + value);}});// Lambda表达式map.forEach((String key, String value) -> {System.out.println(key + "=" + value);});map.forEach((key, value) -> System.out.println(key + "=" + value));map.keySet().forEach(System.out::println);map.values().forEach(System.out::println);}}

案例2

我自己手写的

结合Stream流

static void solve() {int n=sc.nextInt();int m=sc.nextInt();long cnt=0;HashMap<Integer,Integer> hm=new HashMap<>();for(int i=0;i<n;i++) {int ans=sc.nextInt();hm.put(ans, hm.getOrDefault(ans, 0)+1);}//        Integer[] valuesArray = hm.values().stream().toArray(Integer[]::new);Integer arr[] = hm.values().stream().toArray(Integer[]::new);//    	Arrays.stream(arr).forEach(s -> System.out.print(s+" "));for(int i=0;i<arr.length;i++) {for(int j=i+1;j<arr.length;j++) {
//    			System.out.print(arr[i]+" "+arr[j]);
//    			System.out.println();cnt+=(arr[i]*arr[j]);}}System.out.print(cnt);}

1. 函数式接口 (Functional Interface)

在 Java 中,函数式接口是指只包含一个抽象方法的接口。函数式接口可以用来作为 Lambda 表达式的类型,或者是方法引用的目标类型。为了标识一个接口是否为函数式接口,可以使用 @FunctionalInterface 注解。

特点:
  • 一个函数式接口只能有一个抽象方法(可以有多个默认方法或静态方法)。
  • @FunctionalInterface 注解是可选的,但推荐使用它。它可以帮助编译器验证接口是否符合函数式接口的定义。
示例:
java复制代码
@FunctionalInterface
interface MyFunction {void apply();
}

在这个例子中,MyFunction 是一个函数式接口,它只有一个抽象方法 apply()

Java 8 引入了几个常用的函数式接口:
  • Runnable:没有参数,没有返回值。
  • Consumer<T>:接受一个参数,返回值为 void
  • Supplier<T>:无参数,返回一个结果。
  • Function<T, R>:接受一个参数,返回一个结果。
  • Predicate<T>:接受一个参数,返回一个布尔值。

2. Lambda 表达式

Lambda 表达式是 Java 8 引入的一种新特性,它可以让你以更简洁的方式实现接口中的抽象方法,特别是对于函数式接口。Lambda 表达式语法如下:

java复制代码
(parameters) -> expression

或者:

java复制代码
(parameters) -> { statement1; statement2; ... }
语法解析:
  • parameters:Lambda 表达式的参数,类型可以省略,编译器会自动推断。
  • ->:分隔符,表示将参数传递给右侧的表达式或代码块。
  • expression{ statement }:函数体。
示例:
java复制代码
// 使用 Lambda 表达式实现 MyFunction 接口
MyFunction myFunction = () -> System.out.println("Hello, Lambda!");
myFunction.apply();

Lambda 表达式的简洁性使得代码更加易于阅读,尤其是对于像 Runnable 或其他常用的函数式接口。

3. 方法引用 (Method References)

方法引用是 Lambda 表达式的一种简写形式。通过方法引用,能够引用类中的已有方法而不需要实现 Lambda 表达式。方法引用有以下几种形式:

  • 静态方法引用ClassName::staticMethod
  • 实例方法引用instance::instanceMethod
  • 特定对象的实例方法引用ClassName::instanceMethod
  • 构造器引用ClassName::new
示例:
  1. 静态方法引用
java复制代码
class Printer {static void printMessage(String message) {System.out.println(message);}
}public class Example {public static void main(String[] args) {Consumer<String> printer = Printer::printMessage;  // 使用方法引用printer.accept("Hello, Method Reference!");}
}
  1. 实例方法引用
java复制代码
class Printer {void printMessage(String message) {System.out.println(message);}
}public class Example {public static void main(String[] args) {Printer printer = new Printer();Consumer<String> consumer = printer::printMessage;  // 使用实例方法引用consumer.accept("Hello from instance method reference!");}
}
  1. 构造器引用
java复制代码
class Person {String name;Person(String name) {this.name = name;}
}public class Example {public static void main(String[] args) {Supplier<Person> supplier = () -> new Person("John");  // 普通 Lambda 表达式Supplier<Person> constructorRef = Person::new;          // 使用构造器引用Person person = constructorRef.get();System.out.println(person.name);}
}

4. 方法应用

方法应用就是将 Lambda 表达式或方法引用传递给方法,作为参数进行操作。Java 8 的 Stream API 和集合类中的 forEachmapfilter 等方法都广泛使用了 Lambda 表达式和方法引用。

示例:
java复制代码
import java.util.Arrays;
import java.util.List;public class Example {public static void main(String[] args) {List<String> list = Arrays.asList("Java", "Python", "C++");// 使用 Lambda 表达式list.forEach(item -> System.out.println(item));// 使用方法引用list.forEach(System.out::println);}
}

在这个例子中,forEach 方法接收一个 Consumer 类型的参数,Lambda 表达式和方法引用都可以用来实现这一功能。System.out::println 就是一个典型的实例方法引用。

总结

  • 函数式接口:只有一个抽象方法的接口,能够接受 Lambda 表达式或者方法引用。
  • Lambda 表达式:一种简洁的表示接口实现的方式,适用于函数式接口。
  • 方法引用:Lambda 表达式的简化版本,直接引用已有的方法,提升代码可读性。

这些概念和特性是 Java 8 及以后的重要变化,它们帮助我们写出更简洁、更具表现力的代码。

相似点:Lambda 表达式和方法引用

Lambda 表达式和方法引用有许多相似之处,它们都是 Java 8 引入的特性,主要用于简化代码,特别是在使用函数式接口时。以下是它们的相似点:

  1. 都用于函数式接口
    • Lambda 表达式和方法引用都用于实现函数式接口,即只包含一个抽象方法的接口。
  1. 都提高了代码简洁性
    • Lambda 表达式和方法引用都让代码更加简洁。Lambda 表达式通常用于匿名实现接口的情况,而方法引用是对现有方法的引用,可以避免冗长的 Lambda 代码。
  1. 都可以作为参数传递
    • 它们都可以作为参数传递给方法。例如,在 Java 中的 Stream API 或 CollectionforEach 方法中,可以传递 Lambda 表达式或方法引用。
  1. 都可以引用类的实例或静态方法
    • 两者都可以引用类的实例方法或者静态方法。Lambda 表达式也可以引用类的方法,方法引用是 Lambda 表达式的简写形式。
  1. 都能实现类似功能
    • 在许多情况下,Lambda 表达式和方法引用可以互换使用,完成相同的功能。它们都使得代码更易读、更简洁。

不同点:Lambda 表达式和方法引用的区别

尽管 Lambda 表达式和方法引用有许多相似之处,但它们在使用方式和语法上有显著的不同:

1. 语法和结构不同
  • Lambda 表达式
    • Lambda 表达式是一个完整的匿名方法体,使用 -> 符号定义参数和方法体。
    • 语法更加灵活,可以包含多个语句或者表达式。

示例:

java复制代码
(x, y) -> x + y  // Lambda 表达式,执行加法
  • 方法引用
    • 方法引用是 Lambda 表达式的一种简化形式,直接引用现有的方法。
    • 语法是 ClassName::methodName 或者 instance::methodName

示例:

java复制代码
Integer::sum  // 方法引用,引用静态方法 Integer.sum()
2. 功能和灵活性
  • Lambda 表达式
    • Lambda 表达式是一个匿名的函数实现,可以自定义更复杂的逻辑,甚至包含多个语句。
    • 它更加灵活,可以创建任意复杂的行为。

示例:

java复制代码
(x, y) -> { return x + y; }  // 多语句 Lambda 表达式
  • 方法引用
    • 方法引用只能引用现有的、已经定义好的方法,它是 Lambda 表达式的一种优化或简化形式。
    • 不能用于自定义行为,只能用于引用已有的方法。

示例:

java复制代码
String::toLowerCase  // 方法引用,引用现有的方法
3. 简洁性
  • Lambda 表达式
    • 更加灵活,但通常写起来比方法引用长。
    • 对于简单的函数实现,Lambda 可能比方法引用更复杂。
  • 方法引用
    • 更简洁,尤其是在已经有现成的方法可以调用时。
    • 适合那些已经定义好的函数,减少了代码冗余。

示例:

java复制代码
// Lambda 表达式:
list.forEach(item -> System.out.println(item));// 方法引用:
list.forEach(System.out::println);
4. 应用场景
  • Lambda 表达式
    • 适合用来实现更复杂的逻辑或者匿名函数的场景,尤其是当你需要编写一些算法或执行多个操作时。
  • 方法引用
    • 更适合引用现有方法的场景,特别是在没有需要添加额外逻辑时。方法引用通常是对 Lambda 表达式的简化,使得代码更清晰。

示例对比

  1. Lambda 表达式
java复制代码
// 使用 Lambda 表达式实现消费逻辑
list.forEach(item -> System.out.println(item));
  1. 方法引用
java复制代码
// 使用方法引用简化 Lambda 表达式
list.forEach(System.out::println);

在上述示例中,Lambda 表达式和方法引用做了相同的事情,但方法引用代码更简洁。


总结:

  • 相似点:Lambda 表达式和方法引用都用于函数式接口,简化代码,提升代码的可读性和简洁性。
  • 不同点:Lambda 表达式更加灵活,可以处理更复杂的逻辑;方法引用则是对 Lambda 表达式的简化,适用于已有方法的引用,更加简洁。

相关文章:

Javase 基础复习 函数式接口 lambda表达式 方法应用

目录 案例1 案例2 1. 函数式接口 (Functional Interface) 特点&#xff1a; 示例&#xff1a; Java 8 引入了几个常用的函数式接口&#xff1a; 2. Lambda 表达式 语法解析&#xff1a; 示例&#xff1a; 3. 方法引用 (Method References) 示例&#xff1a; 4. 方法…...

【39. 组合总和 中等】

题目&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限…...

UE小白学习日记

Level UE中的Level(关卡)和Unity中的Scene(场景)在概念和用途上非常相似,都是用来组织和管理3D环境的基本单位。让我为您详细对比一下: 相似之处: 它们都是游戏世界的容器,可以包含游戏对象、光照、地形等元素都支持场景/关卡的切换和加载都可以用来划分游戏内容,比如不同关…...

补充之前的一篇 MySQL 的索引为什么能加快查询速度

在之前的一篇文章中写了 MySQL 的索引为什么能加快查询速度&#xff0c;结合这两篇文章&#xff0c;相信你会对 MySQL 的索引有更深一步的了解 ​首先我们要理解一件事&#xff0c;无论什么数据库&#xff0c;它的数据一定都是存储在硬盘中的&#xff0c;而硬盘和内存之间的读…...

GoLand下载安装教程

一、goland环境配置 1.下载地址 https://golang.google.cn/dl/ 2.下载安装 3.添加环境变量 4.测试环境变量 输出Hello,World! 说明环境配置成功 二、goland安装 1.下载安装 https://www.jetbrains.com/go/download/download-thanks.html 2.激活使用 SFXUSA86FM-eyJsaWNlbnNl…...

GAN的应用

5、GAN的应用 ​ GANs是一个强大的生成模型&#xff0c;它可以使用随机向量生成逼真的样本。我们既不需要知道明确的真实数据分布&#xff0c;也不需要任何数学假设。这些优点使得GANs被广泛应用于图像处理、计算机视觉、序列数据等领域。上图是基于GANs的实际应用场景对不同G…...

[石榴翻译] 维吾尔语音识别 + TTS语音合成

API网址 丝路AI平台 获取 Access token 接口地址&#xff1a;https://open.xjguoyu.cn/api/auth/oauth/token&#xff0c;请求方式&#xff1a;GET&#xff0c;POST Access token是调用服务API的凭证&#xff0c;调用服务API之前需要获取 token。每次成功获取 token 以后只有…...

PHP Filesystem:深入解析与实战应用

PHP Filesystem:深入解析与实战应用 引言 PHP作为一种流行的服务器端编程语言,提供了强大的文件系统操作功能。本文将深入探讨PHP的Filesystem函数,这些函数允许开发者访问和操作服务器上的文件系统。无论是进行基本的文件操作,还是实现复杂的文件管理系统,PHP的Filesys…...

仓颉笔记——写一个简易的web服务并用浏览器打开

创建一个web服务端&#xff0c;同时创建一个客户端去读取这个服务端。 也满足浏览器打开web的需求。 直接上代码。 import net.http.* import std.time.* import std.sync.* import std.log.LogLevel// 1. 构建 Server 实例 let server ServerBuilder().addr("127.0.0.1&…...

yolov5+colab跑起来

教程1.先上传网盘再run 教程2.直接上传解压run 本人过程...

Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题

文章目录 1. 文章引言1.1 需求描述1.2 简单介绍1.3 支持平台1.4 源码地址1.5 组件介绍2. 下载OpenSSL3. 安装OpenSSL5. 查看安装目录6. 解决OpenSSL的错误1. 文章引言 1.1 需求描述 今天接到一需求,解密php加密后的数据,由于php使用 openssl_encrypt的方式加密,java也需要使…...

HTML5 网站模板

HTML5 网站模板 参考 HTML5 Website Templates...

代码随想录算法训练营第三十二天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

目录 509.斐波那契数 动态规划五部曲&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 70.爬楼梯 动态规划五部曲&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;…...

<C++学习>C++ Boost 数学与科学计算教程

C Boost 数学与科学计算教程 Boost 提供了强大的数学与科学计算功能模块&#xff0c;包括常用数学函数、特殊函数、矩阵运算、随机数生成器、统计分析工具等。这些工具覆盖了从基本数学操作到复杂科学计算的广泛场景。 1. Boost.Math 简介 Boost.Math 提供了丰富的数学功能&a…...

Spring Framework 5.3.x源码构建 (jdk-1.8, gradle 7.5.1, idea2024.3)

1、下载jdk安装并配置环境变量&#xff08;自行百度&#xff09; https://www.oracle.com/java/technologies/downloads/#java8 2、下载spring-framework源码&#xff0c;切换分支到5.3.x https://github.com/spring-projects/spring-framework.git 备用地址 https://gitco…...

有心力场的两体问题

有心力场中的两体问题是经典力学中的重要研究对象,中心力场问题通常涉及两个相互作用的物体(例如行星与恒星、电子与原子核等)。为了简化分析,问题往往可以转化为一个等效的单体问题。这种方法大大提高了问题的可解性,是解决两体和多体问题的基础步骤之一。将两体问题简化…...

【Pandas】pandas Series rdiv

Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…...

Openstack持久存储-Swift,Cinder,Manila三者之间的区别

总结不易&#xff0c;给个三连吧&#xff01;&#xff01;&#xff01; 补充&#xff1a; 文件共享存储服务Manila 在OpenStack生态系统中&#xff0c;Cinder和Manila分别提供了两种不同类型的存储服务&#xff0c;类似于传统的SAN&#xff08;存储区域网络&#xff09;和NAS&…...

单片机(MCU)-简单认识

简介&#xff1a; 内部集成了CPU&#xff0c;RAM&#xff0c;ROM&#xff0c;定时器&#xff0c;中断系统&#xff0c;通讯接口等一系列电脑的常用硬件功能。 单片机的任务是信息采集&#xff08;依靠传感器&#xff09;&#xff0c;处理&#xff08;依靠CPU&#xff09;&…...

Redis常见知识点

1、什么是缓存穿透&#xff1f; 缓存穿透是指查询一定某个key是否存在&#xff0c;每次不存在都查询DB会把DB压垮。 解决方案的话&#xff0c;我们通常都会用布隆过滤器来解决。 布隆过滤器&#xff1a;在查找一个数是否在一个集合中使用的&#xff0c;通过对数组长度取模&a…...

SQL进阶实战技巧:统计相同时刻多地登陆的用户?

目录 0 问题描述 1 数据准备 2 代码实现 3 问题拓展 3.1 查询每个用户登录日期的最大空档期...

【数据库初阶】表的增删改语句

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; 数据库初阶 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们&#xff0c;大家好&#xff01;在这篇文章中&#xff0c;我们将深入浅出地为大家讲解 MySQL…...

水水水水水水

为了拿推广卷&#xff0c;但不想把我原本完整的文章拆成零散的多篇&#xff0c;只能出此下策随便发一篇&#xff0c;认真写的都笔记专栏里 网络技术&#xff1a;数字时代的基础设施 在当今社会&#xff0c;网络技术无疑是推动现代生活和经济发展的核心动力之一。从简单的信息传…...

基于STM32的智能电表可视化设计:ESP8266、AT指令集、python后端Flask(代码示例)

一、项目概述 随着智能家居的普及&#xff0c;智能电表作为家庭用电管理的重要工具&#xff0c;能够实时监测电流、电压及功率&#xff0c;并将数据传输至后台进行分析和可视化。本项目以STM32C8T6为核心&#xff0c;结合交流电压电流监测模块、ESP8266 Wi-Fi模块、OLED显示屏…...

SpringBoot的@Scheduled和@Schedules有什么区别

Scheduled 的详细解析 参数详解 cron: 使用Cron表达式来指定复杂的调度模式。Cron表达式的格式如下&#xff1a; 秒&#xff08;0-59&#xff09;分钟&#xff08;0-59&#xff09;小时&#xff08;0-23&#xff09;日&#xff08;1-31&#xff09;月&#xff08;1-12 或 JAN-…...

Qiskit快速编程探索(进阶篇)

五、量子电路模拟:探索量子世界的虚拟实验室 5.1 Aer模拟器:强大的模拟引擎 在量子计算的探索旅程中,Aer模拟器作为Qiskit的核心组件之一,宛如一座功能强大的虚拟实验室,为开发者提供了在经典计算机上模拟量子电路运行的卓越能力。它打破了硬件条件的限制,使得研究者无…...

【漫话机器学习系列】043.提前停止训练(Early Stopping)

提前停止训练&#xff08;Early Stopping&#xff09; 提前停止&#xff08;Early Stopping&#xff09; 是一种在训练机器学习模型&#xff08;尤其是深度学习模型&#xff09;时常用的正则化技术&#xff0c;用于防止过拟合并提升模型的泛化能力。它通过监控验证集的性能&am…...

Linux(上):基本知识篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Linux初识1 Linux简介2 Linux学习环境配置(1)安装Linux(2)FinalShell远程连接Linux服务器二、Linux基础命令1 Linux目录结构,根目录 /2 Linux命令基础(1)什么是命令、命令行?(2)…...

Python爬虫与1688图片搜索API接口:深度解析与显著收益

在电子商务的浩瀚海洋中&#xff0c;数据是驱动业务决策的核心引擎。阿里巴巴旗下的1688平台&#xff0c;作为全球领先的B2B在线市场&#xff0c;不仅汇聚了海量的商品信息&#xff0c;还提供了丰富的API接口&#xff0c;为开发者提供了强大的数据获取工具。本文将深入探讨1688…...

生物医学信号处理--随机信号通过线性时不变系统

本章主要讨论 (1)输出、输入间自相关函数和功率谱的关系以及两者间的互相关函数和互谱,把它们和系统的冲激响应与频率特性联系起来。这些是用于随机问题的基本关系,将分别讨论连续时间和离散时间两种情况。 (2)初步介绍一些线性系统在处理随机信号时的应用。但是,应该指出,…...

《HeadFirst设计模式》笔记(上)

设计模式的目录&#xff1a; 1 设计模式介绍 要不断去学习如何利用其它开发人员的智慧与经验。学习前人的正统思想。 我们认为《Head First》的读者是一位学习者。 一些Head First的学习原则&#xff1a; 使其可视化将文字放在相关图形内部或附近&#xff0c;而不是放在底部…...

Ubuntu更改内核

需求背景&#xff1a; 由于软件需要在较低版本或者指定版本才可以运行 版本&#xff1a; 配置文件&#xff1a; vi /etc/default/grub 启动界面&#xff1a; 可运行版本&#xff1a; 解决方案&#xff1a; 方案1、更改启动顺序 sudo vi /etc/default/grub 方案2、调整启动顺…...

广告公司咋找客户?怎么获取目标企业的采购部联系方式

在广告行业&#xff0c;获取目标企业采购部的联系方式是开展业务、拓展客户的关键一步。分享一些实用的方法&#xff0c;希望能帮到正在为获取联系方式而发愁的广告行业的朋友们。 一、利用官方网站和社交媒体平台 1. 官网 大多数企业的官方网站都会提供一些联系方式&#xf…...

个人在技术领导力方面的自我反思与提升

大家好&#xff01;我是 [数擎 AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | A…...

鸿蒙面试 2025-01-11

ArkTs 和TS的关系&#xff1f; ArkTS&#xff08;方舟开发语言&#xff09;与 TypeScript&#xff08;TS&#xff09;存在紧密联系&#xff0c;同时也有显著区别&#xff1a; 联系 语法基础&#xff1a;ArkTS 在语法层面大量借鉴了 TypeScript &#xff0c;TypeScript 里诸如…...

Vim的使用方法

Vim的使用方法 来自Linux 日常操作与基础知识 | archlinux 简明指南 终端编辑器 vim 的使用 我们需要掌握一个能在终端中进行文本编辑的软件&#xff0c;这里介绍 vim。 创建并编辑名为 hello.txt​ 的文件&#xff1a; vim hello.txt此时可以看到进入了一个空的界面&#xf…...

什么是卷积网络中的平移不变性?平移shft在数据增强中的意义

今天来介绍一下数据增强中的平移shft操作和卷积网络中的平移不变性。 1、什么是平移 Shift 平移是指在数据增强&#xff08;data augmentation&#xff09;过程中&#xff0c;通过对输入图像或目标进行位置偏移&#xff08;平移&#xff09;&#xff0c;让目标在图像中呈现出…...

Java基础:equals()方法与==的区别

1、超类Object的equals()底层原理&#xff1a; 在Object超类中已经提供了equals()方法&#xff0c;源码如下&#xff1a; public boolean equals(Object obj) { return (this obj); } 所有的对象都拥有标识&#xff08;内存地址&#xff09;和状态&#xff08;数据&a…...

备战蓝桥杯 队列和queue详解

目录 队列的概念 队列的静态实现 总代码 stl的queue 队列算法题 1.队列模板题 2.机器翻译 3.海港 双端队列 队列的概念 和栈一样&#xff0c;队列也是一种访问受限的线性表&#xff0c;它只能在表头位置删除&#xff0c;在表尾位置插入&#xff0c;队列是先进先出&…...

《分布式光纤测温:解锁楼宇安全的 “高精度密码”》

在楼宇建筑中&#xff0c;因其内部空间庞大&#xff0c;各类电器设施众多&#xff0c;如何以一种既高效又稳定&#xff0c;兼具低成本与高覆盖特性的方式&#xff0c;为那些关键线路节点开展温度监测&#xff0c;是目前在安全监测领域一项重点研究项目&#xff0c;而无锡布里渊…...

每日一题(一):识别字符串中的字符是否唯一

目录 一、前言 二、题目 三、题目分析 &#xff08;一&#xff09;明确需求 &#xff08;二&#xff09;分析思路 四、将思路转变为一个程序 C代码 C代码 注释&#xff1a; 五、总结 一、前言 作为博主在本系列文章中的第一篇文章&#xff0c;博主先对本系列做一个简单的介绍…...

【翻译】2025年华数杯国际赛数学建模题目+翻译pdf自取

保存至本地网盘 链接&#xff1a;https://pan.quark.cn/s/f82a1fa7ed87 提取码&#xff1a;6UUw 2025年“华数杯”国际大学生数学建模竞赛比赛时间于2025年1月11日&#xff08;周六&#xff09;06:00开始&#xff0c;至1月15日&#xff08;周三&#xff09;09:00结束&#xff…...

如何稳定使用 O1 / O1 Pro,让“降智”现象不再困扰?

近期&#xff0c;不少朋友在使用 O1 或 O1 Pro 模型时&#xff0c;都会碰到“降智”或“忽高忽低”的智力波动&#xff0c;比如无法识图、无法生成图片、甚至回答准确度也不稳定。面对这些问题&#xff0c;你是不是也感到头疼呢&#xff1f; 为了找到更可靠的解决办法&#xf…...

【Linux】4.Linux常见指令以及权限理解(2)

文章目录 3. Linux指令3.1 ls指令和rm指令补充3.2 man指令&#xff08;重要&#xff09;3.3cp指令&#xff08;重要&#xff09;输出重定向3.3.1ubuntu20.04如何安装tree 3.4 mv指令&#xff08;重要&#xff09;mv指令更改文件名mv指令更改目录名 如何看待指令指令的重命名3.5…...

神州数码交换机和路由器命令总结

神州数码交换机和路由器命令总结 一、神州数码交换机命令总结 1. 交换机恢复出厂设置及其基本配置. 1) //进入特权模式 2) del startup.cfg 2. Telnet方式管理交换机. 1) //进入全局配置模式 2) enable password 0 [密码] 3) Line 0 4 4) Password 0 [密码] 5) Login 3. 交换机…...

echarts: 双柱柱状图同时两侧双y轴问题

问&#xff1a; 现在又有一个问题&#xff1a;echarts双柱柱状图&#xff0c;同时左侧的y轴有刻度&#xff0c;右侧的y轴也有刻度&#xff0c;双y轴&#xff0c;y轴每一个刻度都对应虚线&#xff0c;这时候会有一个问题&#xff0c;左侧的y轴的虚线和右侧y轴的虚线没对应&…...

计算机网络八股文学习笔记

文章目录 计算机网络基础网络分层模型OSI七层模型TCP/IP四层模型 HTTP从输入URL到页面展示到底发生了什么?(非常重要)HTTP状态码HTTP Header中常见的字段有哪些?HTTP和HTTPS有什么区别?(重要)HTTP/1.0和HTTP/1.1有什么区别?HTTP/1.1和HTTP/2.0有什么区别?HTTP/2.0和HTTP/3…...

java中json字符串键值获取

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version> </dependency>使用fastjson依赖 JSONObject jsonObject JSON.parseObject(s); 这个jsonObject本质就是一个map&…...

MySQL的安装

MySQL典型的关系型数据库&#xff08;RDBMS&#xff09;&#xff1a;oracle、MySQL、SqlServer MySQL的版本 5.5~5.7、8.0 MySQL的安装和配置 下载地址&#xff1a; https://downloads.mysql.com/archives/community/ 安装包 (x86, 64-bit), MSI Installer 执行下一步即…...

Open FPV VTX开源之第一次出图

Open FPV VTX开源之第一次出图 1. 源由2. 连线2.1 飞控2.2 调试 3. serial3.1 启动log - uboot3.2 登录版本 - linux3.3 获取有线IP 4. ssh - linux5. PixelPilot出图6. 总结7. 参考资料8. 补充 - 8812AU网卡 1. 源由 在《Open FPV VTX开源之硬件规格及组成》章节中&#xff0…...