package util.java;
/**@author 彦舜 */
public class Collection_LinkedList {
public static void main(String[] args) {
}
}
//Use and encapsulate type Node, create a newly object of class Link
class Link<T> extends Object implements java.lang.Cloneable, java.lang.Comparable<T>, java.io.Serializable{
/**Three steps of creating a class*/
/**T cannot be resolved to a type
--Add type parameter 'T' to 'Class' */
//Link changed to Link<T>
/**The type Link<T> must implement the inherited abstract method
Comparable<T>.compareTo(T)*/
//Add unimplemented methods
/**@Override
public int compareTo(T o) {
// TODO Auto-generated method stub
return 0;
} */
@Override
public int compareTo(T o) {
return 0;
}
/**The serializable class Link does not declare a static final
serialVersionUID field of type long
--Add default serial version ID
private static final long serialVersionUID = 1L; */
//Add generated serial version ID
private static final long serialVersionUID = 8180581403709358588L;
//Declare a private variable for root node
private Node2<T> root;
public void add(T t) {
//Cannot infer type arguments for Node<>
Node2<T> variable = new Node2<>(t);
//LinkedList this = new LinkedList();
/**Add new data into linklist, if in current linkedlist haven't
any nodes, first data as node */
if(this.root == null) {
this.root = variable;
}else {
/**if in the current class has nodes, add a new object or new
* node or new element to collection by using the node class */
this.root.addNode(variable);
}
}
//in the way of recursion, export all data or element in the collection
public void print() {
if(this.root != null) {
this.root.printNode();
}
}
}
//Definition a node class
class Node2<T> extends Object implements java.lang.Cloneable, java.lang.Comparable<T>, java.io.Serializable{
//Add default serial version ID
private static final long serialVersionUID = 1L;
//Add generated serial version ID
// private static final long serialVersionUID = -4298449616877162803L;
//Create private properties
//The datas of needing to save
private T t;
//This reference save the next node reference
private Node2<T> node;
//Auto create constructor, every the class object also be named element must save corresponding data
public Node2(T t) {
this.t = t;
}
@Override
public int compareTo(T t) {
return 0;
}
//Create methods for setter and getter
public void setT(T t) {
this.t = t;
}
public T getT() {
return this.t;
}
public void setNode(Node2<T> node) {
this.node = node;
}
public Node2<T> getNode(){
return this.node;
}
//实现节点的添加,按照先进先出的规则,新节点添加至末节点之后
public void addNode(Node2<T> node2) {
//The end condition of recursion, judge this node whether is a final node
if(this.node == null) {
this.node = node2;
}else {
this.node.addNode(node2);
}
}
//In the way of recursion, obtain the saved data of every node
public void printNode() {
System.out.println(this.t);
if(this.node != null) {
// System.out.println(this.node.getT());
this.node.printNode();
}
}
}
相关推荐
USB 3.0 Rx Detect之超速U盘的识别
USB 3.0 Rx Detect之超速U盘的识别
数据结构之LinkedList与链表(上)
手动实现单链表的源码 手动实现双链表的源码 分析LinkedList 的源码 LinkedList的使用:常用方法 ArrayList 和 LinkedList的区别
英飞凌TC397芯片时钟树详解:从EB-tresos配置到PLL锁相环实战避坑
本文详细解析了英飞凌TC397芯片的时钟树架构,从EB-tresos配置到PLL锁相环的实战应用,帮助工程师避免常见配置陷阱。文章深入探讨了时钟源层、频率转换层和分配网络层的设计原理,提供了PLL配置的数学公式和EB-tresos关键容器的配置要点,并分享了调试技巧与性能优化实践,适用于MCU开发中的时钟管理需求。
java源码系列:LinkedList的底层实现原理和特性
开启快速了解 链表 、LinkedList的底层实现原理和特性之旅。。。
ipsec 加密流程(一):ipsec策略匹配
《openswan》专栏系列文章主要是记录openswan源码学习过程中的笔记。 Author: Toney Email: vip_13031075266@163.com Date: 2020.11.22 Copyright: 未经同意不得转载!!! Version:2.6.51.5 Reference:https://download.openswan.org/openswan/ 1. ipsec策略匹配流程(ipsec_tunnel_start_xmit) 注:open...
Codex CLI 接入智谱 GLM-5.1 完整教程
Codex CLI 是 OpenAI 推出的命令行 AI 编程工具,支持自主读取文件、执行命令、编写代码等操作,是目前最火的终端 AI 编程工具之一。通过 CLIProxyAPI 代理,我们成功将 Codex CLI 与智谱 GLM-5.1 模型对接,核心在于解决 Responses API 与 Chat Completions API 的协议转换问题。✅成熟稳定:CLIProxyAPI 社区活跃(4.7k fork),持续维护✅完整兼容:支持流式/非流式、function calling✅低成本。
java集合之List篇——ArrayList补充和Vector、LinkedList的底层源码
上一篇介绍了基本的集合(list,Set,Map),还有对于ArrayList的源码解析。这一篇主要讲其他集合的底层源码。目录前言一、ArrayList底层源码讲解的补充(很简单)二、Vector底层源码三、LinkedList的底层源码1.概述2.要用到的常量和变量3.分步源码详解四、总结LinkedList的底层就是数据结构中的双向链表,没有容量之说,每一个 节点用一个Node类对象(静态内部类充当LinkedList类的成员属性)来存储,内容如下:item:存入集合的一个数据。
相机基础知识讲解:CMOS和CCD
相机基础知识讲解:CMOS和CCD
LinkedList与链表
LinkedList与链表
ZooKeeper 实战:使用 Docker Compose 部署 ZooKeeper 集群
ZooKeeper是一个开源的分布式协调服务,用于管理大型分布式系统中的数据。它由Apache软件基金会提供,最初是Hadoop的一个子项目,但后来发展成为一个独立的顶级项目。ZooKeeper提供的一致性协调服务对于构建分布式应用和服务非常重要,特别是在需要精确的领导选举、配置管理、命名服务、分布式同步和提供分布式锁等功能时。
智元机器人开源具身仿真框架 Genie Sim 入门教程
GenieSim是AgiBot推出的具身智能仿真框架,提供完整闭环开发管道,包括轨迹生成、模型训练和基准测试。框架支持Docker容器化部署,要求Ubuntu 22.04和NVIDIA硬件环境。主要功能涵盖: 支持12种基准测试任务 提供ADER评估框架 集成UniVLA/RDT等基线模型 支持PICO/键盘遥操作 具备轨迹记录回放功能 提供完整API控制接口 开发者可通过Hugging Face获取场景资产,使用标准化ROS主题与仿真环境交互。框架特别优化了碰撞检测和抓取物理模拟,适用于从简单抓取到复杂操
Java集合——LinkedList源码详解
0.前言先对LinkedList的特性进行一个概述:(1)LinkedList底层实现为双向循环链表。链表的特点就是插入删除数据快,而查询数据慢。(2)因为使用链表的原因,所以不存在容量不足的问题,没有扩容机制。(3)从后面的源码分析中我们也可以看出,LinkedList支持null并且LinkedList没有同步机制。(4)LinkedList直接继承于AbstractSequentialL...
MTK(基础篇)ROM烧录以及分区的作用
本文介绍了MTK芯片设备的刷机流程及关键分区功能。首先通过MTK烧录工具加载ROM文件(包括引导文件和分区表),重点解析了各分区的核心作用:preloader类似BIOS负责硬件初始化;lk作为二级引导程序加载内核;vbmeta验证系统完整性;boot包含Linux内核;dtbo调整硬件配置;modem管理通信功能;tee保护生物识别数据;system/vendor分别存放系统核心和硬件驱动。特别指出preloader、vbmeta等关键分区损坏会导致设备变砖,而recovery分区是重要的救砖入口。全文简
Java LinkedList解密
LinkedList其实底层是链表:当初始化的时候,会将链表这个节点的值、prev指针和next指针初始化。
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
【Java集合源码剖析】LinkedList源码剖析
LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。 LinkedList源码剖析 LinkedList的源码如下(加入了比较详细的注释):
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
从手写LinkedList看底层代码实现结构
文章目录代码已实现的方法[待续]:LinkedList相关知识科普:收获[待续]:思考[待续]代码附录 代码已实现的方法[待续]: 方法名 作用 备注 clear() 初始化链表&清空链表 两个作用 size() 取链表容量 isEmpty() 判断链表是否为空 add() 往链表中插入一个值 多个构造方法,含私有方法 set() 修改链表指定位置元素...
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
Java——集合中的List接口通过LinkedList类实现一些常用的方法
Java——集合中的List接口通过LinkedList类实现一些常用的方法
java集合图解源码系列【3】:从链表讲到LinkedList(含图解反转单链表算法)
大家好!我是未来村村长,就是那个“请你跟我这样做,我就跟你这样做!”的村长👨🌾!
python 双向链表_面试官:LinkedList是单向链表还是双向链表?
面试官:你能说说 LinedList 吗?Python 小星:LinedList 数据结构是链表,查询慢,增删快。面试官:那 LinkedList 是单向链表还是双向链表?Python 小星:双向链表面试官:那 LinkedList 是双向循环链表吗?Python 小星:......面试官:没事,那我问你 LinkedList 为什么不用单链表,而是用双链表?Python 小星:......面试官...
java linkedlist底层_手写Java LinkedList核心源码
上一章我们手写了ArrayList的核心源码,ArrayList底层是用了一个数组来保存数据,数组保存数据的优点就是查找效率高,但是删除效率特别低,最坏的情况下需要移动所有的元素。在查找需求比较重要的情况下可以用ArrayList,如果是删除操作比较多的情况下,用ArrayList就不太合适了。Java为我们提供了LinkedList,是用链接来实现的,我们今天就来手写一个QLinkedList,...
Java集合框架:什么是Java集合框架?List、Set与Map接口如何选择?底层原理实现在JDK 8、17、21有什么区别?
在Java开发中,集合框架是必备工具之一,用于存储、操作和管理数据。List、Set和Map是最常用的接口,它们各自适用不同的场景。同时,随着JDK 8、JDK 17和JDK 21的不断升级,集合框架的底层实现也逐步优化,性能显著提升。在本篇文章中,猫头虎将详细解析: 什么是Java集合框架? List、Set与Map接口的选择与适用场景 JDK 8、JDK 17、JDK 21中集合框架的底层原理与优化 掌握Java集合框架的核心概念和底层原理,让你写出高性能的代码!
LinkedList详解
java集合总结: ArrayList详解_Allence的博客-优快云博客一、介绍ArrayList是以什么数据结构实现的ArrayList底层的数据结构是顺序表。顺序表:物理内存上连续、逻辑上连续、大小可以动态扩展顺序表是由数组实现的,说道这里就理一下数组、链表、顺序表之间的关系。逻辑结构:结构定义中是对操作对像的数学描述,描述的是数据元素之间的逻辑关系。例如,线性结构,树形结构,图状结构或网状结构。它们都属于逻辑结构。物理结构:又称存储结构,是数据结构在计算机中的表示(又称映像)。例如,数组,指针
鬼知道我看了几遍!Java常用集合类总结:ArrayList+LinkedList+Vector+HashMap+Set类+Queue/Deque类集合
JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就JavaCollectionsFramework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解Java的集合实现,还是要推荐去阅读JDK的源码。 点个小赞,好运不断,来个关注,青春常驻,打个小赏,工资疯涨。。。 Java提供的众多集合类由两大接口衍生而来:Collection接口和Map接口 Collecti.
java集合,ArrayList、LinkedList、Vector、set
java集合
linkedList源码分析
文章目录1、linkedList底层数据结构2.源码分析1.节点类2.基本属性3.构造方法4.找出指定下标的元素或节点4.元素的添加5.元素删除6.是否包含指定元素 1、linkedList底层数据结构 linkedList和ArrayList在底层的实现上有所不同,ArrayList底层实现是数组,linkedList底层实现是双向链表 ##链表介绍## 链表是一种物理存储单元上非连续的,非顺...
java源码系列:HashMap底层存储原理详解——2、技术本质-原理过程-数据结构
HashMap原理以及知识体系,从0到1透彻讲解。。。
2万+



被折叠的 条评论
为什么被折叠?



