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

Java学习教程,从入门到精通,Java LinkedList(链表)语法知识点及案例代码(62)

Java LinkedList(链表)语法知识点及案例代码

一、LinkedList概述

LinkedList是Java集合框架中的一个类,位于java.util包中。它实现了List、Deque、Queue等接口,提供了链表数据结构的实现。链表是一种线性数据结构,其中每个元素都是一个节点,节点包含数据和指向下一个节点的引用。LinkedList是一个双向链表,每个节点除了指向下一个节点外,还指向前一个节点。

二、LinkedList的特点
  • 动态大小:链表的大小是动态变化的,不需要预先分配固定大小的内存。
  • 高效的插入和删除操作:在链表中间进行插入和删除操作的时间复杂度为O(1)(在已知节点位置的情况下)。
  • 随机访问效率低:访问链表中任意位置的元素需要从头开始遍历,时间复杂度为O(n)。
三、LinkedList的常见方法
  1. 构造方法

    • LinkedList():创建一个空的LinkedList。
    • LinkedList(Collection<? extends E> c):使用指定的集合来创建LinkedList。
  2. 添加元素

    • void add(E e):在链表末尾添加元素。
    • void add(int index, E element):在链表的指定位置插入元素。
    • void addFirst(E e):在链表的开头添加元素。
    • void addLast(E e):在链表的末尾添加元素。
  3. 删除元素

    • E remove():删除并返回链表的第一个元素。
    • E remove(int index):删除链表中指定位置的元素。
    • boolean remove(Object o):删除链表中指定的元素(如果存在)。
    • E removeFirst():删除并返回链表的第一个元素。
    • E removeLast():删除并返回链表的最后一个元素。
  4. 访问元素

    • E get(int index):返回链表中指定位置的元素。
    • E getFirst():返回链表的第一个元素。
    • E getLast():返回链表的最后一个元素。
  5. 检查元素

    • boolean contains(Object o):检查链表中是否包含指定的元素。
  6. 查找元素位置

    • int indexOf(Object o):返回链表中第一次出现指定元素的索引位置。
    • int lastIndexOf(Object o):返回链表中最后一次出现指定元素的索引位置。
  7. 其他方法

    • int size():返回链表中元素的数量。
    • void clear():清空链表中的所有元素。
    • boolean isEmpty():检查链表是否为空。
    • Iterator<E> iterator():返回链表的迭代器。
    • ListIterator<E> listIterator():返回链表的列表迭代器。
    • ListIterator<E> listIterator(int index):返回从指定位置开始的列表迭代器。
四、案例代码

以下是一个简单的Java程序,展示了如何使用LinkedList及其常见方法。

import java.util.LinkedList;
import java.util.Iterator;
import java.util.ListIterator;public class LinkedListExample {public static void main(String[] args) {// 创建一个LinkedList对象LinkedList<String> linkedList = new LinkedList<>();// 添加元素到链表末尾linkedList.add("苹果");linkedList.add("香蕉");linkedList.add("橙子");// 在指定位置插入元素linkedList.add(1, "葡萄");// 访问元素String fruit = linkedList.get(2);System.out.println("索引为2的元素: " + fruit); // 输出: 索引为2的元素: 葡萄// 删除元素String removedFruit = linkedList.remove(0);System.out.println("移除的元素: " + removedFruit); // 输出: 移除的元素: 苹果// 获取链表的大小int size = linkedList.size();System.out.println("大小: " + size); // 输出: 大小: 3// 检查链表是否为空boolean empty = linkedList.isEmpty();System.out.println("是否为空: " + empty); // 输出: 是否为空: false// 检查链表是否包含指定元素boolean contains = linkedList.contains("香蕉");System.out.println("是否包含香蕉: " + contains); // 输出: 是否包含香蕉: true// 使用Iterator遍历Iterator<String> iterator = linkedList.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}// 使用ListIterator遍历和修改ListIterator<String> listIterator = linkedList.listIterator();while (listIterator.hasNext()) {String element = listIterator.next();if (element.equals("葡萄")) {listIterator.set("草莓"); // 修改元素}}// 输出修改后的链表System.out.println("修改后的链表: " + linkedList); // 输出: 修改后的链表: [香蕉, 草莓, 橙子]// 清空链表linkedList.clear();System.out.println("清空后的链表是否为空: " + linkedList.isEmpty()); // 输出: 清空后的链表是否为空: true}
}
五、总结

LinkedList是一个强大的数据结构,适用于在列表中间频繁进行插入和删除操作的场景。通过掌握其常见方法和特点,可以更加高效地处理链表相关的编程问题。

当然可以,以下是一些关于Java中LinkedList的具体案例,涵盖了LinkedList的构造、元素增删、查找、遍历等操作:

案例一:LinkedList的基本构造与元素增删

import java.util.LinkedList;public class LinkedListExample {public static void main(String[] args) {// 构造一个空的LinkedListLinkedList<Integer> list = new LinkedList<>();// 尾插法添加元素list.add(1);list.add(2);list.add(3);// 在指定位置插入元素list.add(1, 4); // 在索引1的位置插入4// 删除元素list.remove(2); // 删除索引为2的元素,即3list.removeFirst(); // 删除第一个元素,即1list.removeLast(); // 删除最后一个元素// 打印链表内容System.out.println(list); // 输出:[4]}
}

案例二:LinkedList的查找与修改

import java.util.LinkedList;public class LinkedListSearchAndModify {public static void main(String[] args) {// 构造一个LinkedList并添加元素LinkedList<String> list = new LinkedList<>();list.add("apple");list.add("banana");list.add("cherry");// 查找元素int index = list.indexOf("banana"); // 查找"banana"的索引位置if (index != -1) {System.out.println("banana的索引位置是:" + index);} else {System.out.println("未找到元素banana");}// 修改元素list.set(1, "blueberry"); // 将索引为1的元素修改为"blueberry"// 打印链表内容System.out.println(list); // 输出:[apple, blueberry, cherry]}
}

案例三:LinkedList的遍历

import java.util.LinkedList;
import java.util.Iterator;
import java.util.ListIterator;
public class LinkedListIteration {public static void main(String[] args) {// 构造一个LinkedList并添加元素LinkedList<String> list = new LinkedList<>();list.add("dog");list.add("cat");list.add("bird");// 使用普通for循环遍历for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}// 使用增强for循环遍历for (String element : list) {System.out.println(element);}// 使用Iterator遍历Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}// 使用ListIterator遍历,并演示反向遍历ListIterator<String> listIterator = list.listIterator();while (listIterator.hasNext()) {System.out.println(listIterator.next());}System.out.println("反向遍历:");while (listIterator.hasPrevious()) {System.out.println(listIterator.previous());}}
}

案例四:LinkedList作为队列使用

import java.util.LinkedList;public class LinkedListAsQueue {public static void main(String[] args) {// 构造一个空的LinkedList作为队列LinkedList<String> queue = new LinkedList<>();// 入队操作queue.addLast("task1");queue.addLast("task2");queue.addLast("task3");// 出队操作并打印System.out.println(queue.removeFirst()); // 输出:task1System.out.println(queue.pollFirst()); // 输出:task2,pollFirst在队列为空时返回null,避免异常// 打印剩余队列内容System.out.println(queue); // 输出:[task3]}
}

这些案例展示了LinkedList在Java中的基本用法,包括构造链表、添加和删除元素、查找和修改元素、遍历链表以及将链表作为队列使用等场景。通过这些案例,可以更好地理解和掌握LinkedList的使用。

相关文章:

Java学习教程,从入门到精通,Java LinkedList(链表)语法知识点及案例代码(62)

Java LinkedList&#xff08;链表&#xff09;语法知识点及案例代码 一、LinkedList概述 LinkedList是Java集合框架中的一个类&#xff0c;位于java.util包中。它实现了List、Deque、Queue等接口&#xff0c;提供了链表数据结构的实现。链表是一种线性数据结构&#xff0c;其…...

3分钟读懂数据分析的流程是什么

数据分析是基于商业目的&#xff0c;有目的地进行收集、整理、加工和分析数据&#xff0c;提炼出有价值的 信息的一个过程。整个过程大致可分为五个阶段&#xff0c;具体如下图所示。 1.明确目的和思路 在开展数据分析之前&#xff0c;我们必须要搞清楚几个问题&#xff0c;比…...

【Leetcode 热题 100 - 扩展】303. 区域和检索 - 数组不可变

问题背景 给定一个整数数组 n u m s nums nums&#xff0c;处理以下类型的多个查询&#xff1a; 计算索引 l e f t left left 和 r i g h t right right&#xff08;包含 l e f t left left 和 r i g h t right right&#xff09;之间的 n u m s nums nums 元素的 和 &a…...

Leecode刷题C语言之同位字符串连接的最小长度

执行结果:通过 执行用时和内存消耗如下&#xff1a; bool check(char *s, int m) {int n strlen(s), count0[26] {0};for (int j 0; j < n; j m) {int count1[26] {0};for (int k j; k < j m; k) {count1[s[k] - a];}if (j > 0 && memcmp(count0, cou…...

API开发:Flask VS FastAPI

在当今的Web开发领域&#xff0c;选择合适的框架对于构建高效、稳定且易于维护的API至关重要。Flask和FastAPI是两个备受关注的Python Web框架&#xff0c;它们各自具有独特的特点和优势&#xff0c;适用于不同的开发场景。 文章目录 一、简介二、性能表现三、开发效率&#xf…...

fastAPI接口的请求与响应——基础

1. 后端接口 1.接口实现 pip install fastapi pip install uvicorn# api.py from pydantic import BaseModel from fastapi import FastAPI import uvicorn import os# 定义请求体模型 class Payload(BaseModel):key1: strkey2: str# 创建一个FastAPI应用程序实例 app Fast…...

[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words

python有哪些关键字_keyword_list_列表_reserved_words 回忆上次内容 hello world 不是 从来就有的 来自于 c语言 print、小括号 和 双引号 也来自于 c语言 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; python 标识符 的 命名规则 依然 完全 学习…...

面试题整理2---Nginx 性能优化全方案

面试题整理2---Nginx 性能优化全方案 1. 调整工作进程数和线程数1.1 调整工作进程数1.2 调整进程的最大连接数 2. 配置Gzip压缩2.2 配置Gzip压缩 3. 配置缓存策略3.1 配置浏览器缓存时间3.2 配置代理服务器缓存时间 4. 优化文件访问方式4.1 使用sendfile()函数发送文件数据4.2 …...

15.3、陷阱技术 入侵容忍 隐私保护技术

目录 网络攻击陷阱技术与应用蜜罐主机技术陷阱网络技术三代陷阱网络网络攻击陷阱技术应用入侵容忍及系统生存技术入侵容忍及系统生存技术应用隐私保护技术网络安全的前沿技术发展动向 网络攻击陷阱技术与应用 攻击陷阱技术也叫诱骗技术&#xff0c;它是一种主动防御的方法&…...

PyQt6 学习记录1

简介 PyQt6 是基于 Python 的一系列模块。它是一个多平台的工具包&#xff0c;可以在包括 Unix、Windows 和 Mac OS 在内的大部分主要操作系统上运行。 安装 pip install PyQt6 模块 - QtCore - QtGui - QtWidgets - QtDBus - QtNetwork - QtHelp - QtXml - QtSvg - QtSql…...

ModelArts平台打卡体验活动:MindSpore2.4.0快速入门

一、环境准备 1.进入ModelArts官网 云平台帮助用户快速创建和部署模型&#xff0c;管理全周期AI工作流&#xff0c;选择下面的云平台以开始使用昇思MindSpore&#xff0c;可以在昇思教程中进入ModelArts官网 创建notebook&#xff0c;点击【打开】启动&#xff0c;进入ModelA…...

python学习——洛谷P2010 [NOIP2016 普及组] 回文日期 三种方法

[NOIP2016 普及组] 回文日期 文章目录 [NOIP2016 普及组] 回文日期题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示方法一方法二方法三 题目背景 NOIP2016 普及组 T2 题目描述 在日常生活中&#xff0c;通过年、月、日这…...

现代风格VUE3易支付用户控制中心

适用系统 彩虹易支付 技术栈 vitevue3elementuiplusphp 亮点 独立前端代码,扩展开发,不改动系统文件,不影响原版升级 支持功能订制 界面预览...

重生之我在异世界学智力题(9)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言时间旅行者的逻辑谜题题目描述&#…...

《Mycat核心技术》第05章:Mycat中文乱码解决方案

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球项目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…...

Flink执行模式(批和流)如何选择

DataStream API支持不同的运行时执行模式(batch/streaming),你可以根据自己的需求选择对应模式。 DataStream API的默认执行模式就是streaming,用于需要连续增量处理并且预计会一直保持在线的无界(数据源输入是无限的)作业。 而batch执行模式则用于有界(输入有限)作业…...

vue 文本域 展示的内容格式要和填写时保持一致

文本域 展示的内容格式要和填写时保持一致 <el-inputtype"textarea":rows"5"placeholder"请输入内容"v-model"formCredit.point"style"width:1010px;" > </el-input> 样式加个&#xff1a; white-space: pre-w…...

计算机基础知识复习12.20

B树与B树差异的点 叶子节点最底部的节点才会存放实际数据(索引记录)&#xff0c;非叶子节点只会存放索引 所有索引都会在叶子节点出现&#xff0c;叶子节点之间构成一个有序链表 为什么mysql使用B树 单点查询&#xff1a;B树的非叶子节点不存放实际的记录数据&#xff0c;仅…...

Flash语音芯片相比OTP语音芯片的优势

Flash语音芯片和OTP语音芯片是两种常见的语音解决方案&#xff0c;在各自的应用领域中发挥着重要作用。本文‌将介绍Flash语音芯片相比OTP(One-Time Programmable)语音芯片的显著优势‌。 1‌.可重复擦写‌&#xff1a;Flash语音芯片的最大特点是支持多次编程和擦除&#xff0c…...

深度学习模型中增加随机性可以通过多种方式实现,以下是一些可以应用到你的 `TCNAttentionLSTM`

在深度学习模型中增加随机性可以通过多种方式实现&#xff0c;以下是一些可以应用到你的TCNAttentionLSTM模型中的方法&#xff1a; ### 1. Dropout 你已经在模型中使用了dropout&#xff0c;这是增加随机性的一种常见方法。你可以通过调整dropout率来控制随机性的程度。 ###…...

JavaScript:一个争议与机遇并存的编程语言

JavaScript的诞生带着某种戏剧性色彩。1995年&#xff0c;网景公司的Brendan Eich在短短10天内设计出了这门语言。这种仓促的诞生为JavaScript埋下了许多设计缺陷的隐患&#xff0c;这些问题直到今天仍在困扰着开发者。然而&#xff0c;正是这样一个充满争议的语言&#xff0c;…...

后摩尔定律时代,什么将推动计算机性能优化的发展?

在摩尔定律时代&#xff0c;每两年芯片上的晶体管数量就会翻一番&#xff0c;这一看似不可避免的趋势被称为摩尔定律&#xff0c;它极大地促进了计算机性能的提高。然而&#xff0c;硅基晶体管不可能一直小下去&#xff0c;半导体晶体管的微型化推动了计算机性能的提升&#xf…...

台球助教平台系统开发APP和小程序信息收藏功能需求解析(第十二章)

以下是开发台球助教系统客户端&#xff08;APP&#xff0c;小程序&#xff0c;H5&#xff09;几端的信息收藏功能的详细需求和功能说明&#xff0c;内容比较详细&#xff0c;可以说是一个教科书式的详细说明了&#xff0c;这套需求说明不仅仅用在我们的台球助教系统程序上&…...

软件实验室认可|实验室比对的形式与方法

实验室比对是软件测试实验室在申请软件实验室认可必须要做的一类质量控制活动。实验室比对包括实验室间比对&#xff0c;和实验室内比对。实验室间比对指的是按照预先规定的条件&#xff0c;由两个或多个实验室对相同或类似的物品进行测量或检测的组织、实施和评价。实验室内比…...

HarmonyOS NEXT开发进阶(四):@Builder 装饰器实现UI结构复用

一、前言 当页面有多个相同的UI结构时&#xff0c;若每个都单独声明&#xff0c;同样会有大量重复的代码。为避免重复代码&#xff0c;可以将相同的UI结构提炼为一个自定义组件&#xff0c;完成UI结构的复用。 除此之外&#xff0c;ArkTS还提供了一种更轻量的UI结构复用机制B…...

Vivado/Vitis中自定义IP的驱动

在使用Xilinx FPGA时&#xff0c;很多时候都要添加自定义的IP以实现相应的功能&#xff0c;一些时候会通过AXI总线与软核或硬核相连&#xff0c;这个时候就可以在软件中对IP进行控制。 当我们打开Vitis开始软件编写时&#xff0c;会遇到自定义IP驱动编译不过的情况&#xff0c;…...

CentOS7安装Python3.9(已装python2.6)

Python下载地址&#xff1a;Index of /ftp/python/ 下载并解压 # 安装wgetyum -y install wget # 下载wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz # 解压tar zxvf Python-3.9.0.tgz # 切换目录cd Python-3.9.0 编译并安装 # 编译 ./configure --prefix/us…...

cenos如何升级git到2以上版本

1&#xff1a;先卸载旧的版本: # 卸载源默认安装的git $ git --version git version 1.8.3.1 $ sudo yum remove git2: 安装新的git版本 编译 配置环境变量 下载相关依赖 并安装 [rootlocalhost /]# yum install curl-devel expat-devel openssl-devel zlib-devel gcc […...

【JetPack】Navigation知识点总结

Navigation的主要元素&#xff1a; 1、Navigation Graph&#xff1a; 一种新的XML资源文件,包含应用程序所有的页面&#xff0c;以及页面间的关系。 <?xml version"1.0" encoding"utf-8"?> <navigation xmlns:android"http://schemas.a…...

图文社区用户搜索关系表设计方案:空间换时间的权衡与抉择

背景 我们来聊一个解决方案&#xff1a;我们做了一个和抖音产品类似的图文社区&#xff0c;社区有一个搜索栏&#xff0c;通过名字搜索用户&#xff0c;搜索出来的用户需要体现出其与当前用户的关系&#xff1a;1.当前用户的粉丝。2.当前用户关注的人。3.互相关注。目前总用户…...

问题小记-达梦数据库报错“字符串转换出错”处理

最近遇到一个达梦数据库报错“-6111: 字符串转换出错”的问题&#xff0c;这个问题主要是涉及到一条sql语句的执行&#xff0c;在此分享下这个报错的处理过程。 问题表现为&#xff1a;一样的表结构和数据&#xff0c;执行相同的SQL&#xff0c;在Oracle数据库中执行正常&…...

空天地遥感数据识别与计算--数据分析如何助力农林牧渔、城市发展、地质灾害监测等行业革新

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…...

Cherno C++ 学习笔记 智能指针

这一篇我们会讲到一个C当中非常重要的特性&#xff0c;也就是智能指针smart pointer。在我们知道了new和delete两个关键字之后&#xff0c;我们了解了如何在堆上分配内存以及如何释放内存。但是当我们new了一个或者一堆对象之后&#xff0c;很多时候我们会容易忘掉delete所有需…...

C++ OpenGL学习笔记(2、绘制橙色三角形绘制、绿色随时间变化的三角形绘制)

相关文章链接 C OpenGL学习笔记&#xff08;1、Hello World空窗口程序&#xff09; 目录 绘制橙色三角形绘制1、主要修改内容有&#xff1a;1.1、在主程序的基础上增加如下3个函数1.2、另外在主程序外面新增3个全局变量1.3、编写两个shader程序文件 2、initModel()函数3、initS…...

如何创建属于自己的大语言模型:从零开始的指南

如何创建属于自己的大语言模型&#xff1a;从零开始的指南 为什么要创建自己的大语言模型&#xff1f; 随着人工智能的快速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在各种场景中表现出了卓越的能力&#xff0c;例如文本生成、对话交互和内容总结等。虽然市场上…...

【AIGC安全】CCF-CV企业交流会直播回顾:探寻AI安全治理,共筑可信AI未来

文章目录 一、活动背景&#xff1a;AI技术快速发展与安全治理需求迫切二、论坛内容金耀辉&#xff1a;智能共生时代&#xff1a;平衡生成式AI的创新与风险何延哲&#xff1a;人工智能安全检测评估的逻辑和要点谢洪涛&#xff1a;面向特定人物深度伪造视频的主动防御与被动检测技…...

win11+cuda11x+VS2019安装后没有cuda模板,贫穷版cuda环境

显卡是GTX710&#xff0c;挂在闲鱼200块钱一年多都没卖出去的一款。win11最开始安装了visual studio 2022&#xff0c;不过安装目录自定义&#xff0c;后续安装cuda 11.1.1&#xff0c;这个顺序在各种博客资料都是正确的&#xff0c;先VS&#xff0c;后cuda。但是创建项目也没有…...

四相机设计实现全向视觉感知的开源空中机器人无人机

开源空中机器人 基于深度学习的OmniNxt全向视觉算法OAK-4p-New 全景硬件同步相机 机器人的纯视觉避障定位建图一直是个难题&#xff1a; 系统实现复杂 纯视觉稳定性不高 很难选到实用的视觉传感器 为此多数厂家还是采用激光雷达的定位方案。 OAK-4p-New 为了弥合这一差距…...

越疆科技营收增速放缓:毛利率未恢复,持续亏损下销售费用偏高

《港湾商业观察》施子夫 12月13日&#xff0c;深圳市越疆科技股份有限公司&#xff08;以下简称&#xff0c;越疆科技&#xff0c;02432.HK&#xff09;发布全球发售公告&#xff0c;公司计划全球发售4000万股股份&#xff0c;其中3800万股国际发售&#xff0c;200万股香港公开…...

南城云趣:智能云平台,杜绝电动车充电安全隐患

电动自行车作为绿色低碳出行的主要方式之一,受到无数市民的推崇,而电动自行车数量的急剧上涨,也严重增加小区管理的负担。记者调查发现,目前电动自行车缺乏有效的管理,使得带车或电瓶上楼充电、乱停乱放、车辆容易被盗等安全问题日益突出,给社区消防安全和管理带来严峻的挑战。…...

uniapp对接unipush 1.0 ios/android

简介 实现方法 是uniapp官网推荐的 unipush-v1 文档配置具体看 uni-app官网 配置好了之后 代码实现 前端代码 前端的主要任务是监听 监听到title content 创建消息推送 安卓 可以收到在线消息并且自动弹出消息 IOS 可以监听到在线消息但是需要手动推送 以下代码app初始…...

Vue.js前端框架教程11:Vue监听器watch和watchEffect

文章目录 监听器&#xff08;watchers&#xff09;基本用法deep: trueimmediate: true总结 watchEffect基本用法自动追踪依赖停止监听与 watch 的对比性能优化总结 监听器&#xff08;watchers&#xff09; 在 Vue 中&#xff0c;监听器&#xff08;watchers&#xff09;是一种…...

和数集团针对元宇宙数字身份及资产验证安全性发起挑战

随着时间的推移&#xff0c;元宇宙的发展潜力是无限的。 但与此同时&#xff0c;故事中充斥着疑问、困惑和不安。马克扎克伯格声称人类在未来将生活在虚拟世界中。也许是这样&#xff0c;但元宇宙的应用也面临很多障碍。其中一个领域是安全。对于在元宇宙中发生的任何交易&…...

llama2中的model.py中的结构示意图

参考文章&#xff1a;https://zhuanlan.zhihu.com/p/679640407...

Spring事务管理详解

一、什么是事务管理 事务是一个最小的不可再分的工作单元。 一个事务对应一套完整的业务操作。事务管理是指这些操作要么全部成功执行&#xff0c;要么全部回滚&#xff0c;从而保证数据的一致性和完整性。比如银行转账&#xff0c;需要保证转出和转入是一个原子操作。Spring提…...

被裁20240927 --- 嵌入式硬件开发 前篇

前篇主要介绍一些相关的概念&#xff0c;用于常识扫盲&#xff0c;后篇开始上干货&#xff01; 他捧着一只碗吃过百家的饭 处理器芯片处理器芯片制造商嵌入式处理器芯片制造商国内制造商国外制造商 与意法半导体对标的国产芯片制造商一、中芯国际二、华为海思三、紫光国微四、北…...

CMake的INSTALL FILES和INSTALL DIRECTORY有什么区别

在 CMake 中&#xff0c;install() 命令用于安装构建的目标文件、头文件、库等到指定的目标路径。install(FILES ...) 和 install(DIRECTORY ...) 都是 install() 命令的具体用法&#xff0c;它们的功能和适用场景不同。 以下是两者的详细区别和用法说明&#xff1a; 1. insta…...

提炼关键词的力量:AI驱动下的SEO优化策略

内容概要 在当今数字化营销的环境中&#xff0c;关键词对于提升网站的可见性和流量起着至关重要的作用。企业和个人必须重视有效的关键词策略&#xff0c;以便在竞争激烈的网络市场中脱颖而出。本文将深入探讨如何利用人工智能技术来优化SEO策略&#xff0c;特别是在关键词选择…...

springboot中Controller内文件上传到本地以及阿里云

上传文件的基本操作 <form action"/upload" method"post" enctype"multipart/form-data"> <h1>登录</h1> 姓名&#xff1a;<input type"text" name"username" required><br> 年龄&#xf…...

【MFC】多工具栏如何保存状态

MFC中的工具栏本来只有一个&#xff0c;如果想增加几个工具栏是比较简单&#xff0c;但现在一个重要的问题是&#xff0c;状态无法保存&#xff0c;导致每次打开&#xff0c;工具栏就会出现问题&#xff0c;要么偏移位置要么显示不出。 经过研究&#xff0c;发现是MFC框架中的…...