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

【LinkedList demo 内部类讲说】

LinkedList demo 内部类讲说

      • 1. Node节点
      • 2.MyLinkedList
      • 3. LinkedListTest 测试类

1. Node节点

public class Node<T> {private Node<T> pre;private Node<T> next;private T data;public Node() {}public Node getPre() {return pre;}public void setPre(Node pre) {this.pre = pre;}public Node getNext() {return next;}public void setNext(Node next) {this.next = next;}public T getData() {return data;}public void setData(T data) {this.data = data;}public Node(Node pre, Node next, T data) {this.pre = pre;this.next = next;this.data = data;}
}

2.MyLinkedList

public class MyLinkedList<T>{private Node<T> head;private Node<T> tail;private int size;public MyLinkedList() {}public MyLinkedList(Node<T> head) {this.head = head;}public void add(T data) {if (head == null) {Node<T> node = new Node<>();node.setData(data);head = node;tail = node;} else {Node<T> node = new Node<>();node.setData(data);node.setPre(tail);node.setNext(null);tail.setNext(node);tail = node;}size++;}public int size() {return size;}public T get(int index) {if (index < 0 || index >= size) throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);Node<T> node = head;for (int i = 0; i < index; i++) {node = node.getNext();}return (T)node.getData();}
}

3. LinkedListTest 测试类

public class LinkedListTest {/*** 内部类可以访问外部类的所有成员,包括私有成员。根据定义的位置分为:* 1.成员内部类(最常用)* 2.静态内部类* 3.局部内部类* 4.匿名内部类* 形象地比喻,内部类像是“遥控器的电池”* 想象一下,你买了一台空调,它配有一个遥控器(内部类)* 遥控器可以控制空调,就像内部类可以访问外部类的属性* 如果遥控器有电池仓(匿名内部类),可以插入具体电池(一个临时的实现)** 何时使用内部类?* 内部类只为外部类服务,不需要被外部调用* 需要访问外部类的私有成员时,* 代码结构上是一种强关联的逻辑组织。*/public static void main(String[] args) {MyLinkedList<String> list = new MyLinkedList<>();list.add("aa");list.add("bb");list.add("cc");String result = list.get(1);System.out.println(result); //输出bb}
}
http://www.xdnf.cn/news/7648.html

相关文章:

  • BI是什么意思?一文讲清BI的概念与应用!
  • LeetCode-前缀和-和为K的子数组
  • 网络学习中通信方面的相关知识、及再次解读B=2W
  • 如果电路教材这么讲--积分运算电路中反馈电容并联电阻的作用
  • 制造业或跨境电商相关行业三种模式:OEM、ODM、OBM
  • 十大排序算法--快速排序
  • VitePress 中以中文字符结尾的字体加粗 Markdown 格式无法解析
  • 颠覆传统:PROFINET转EthernetIP在油墨生产线的成功应用
  • 小土堆pytorch--神经网路-卷积层池化层
  • 时尚外观+专业性能丨特伦斯V30Pro重新定义便携电子钢琴
  • 深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践
  • 【八股战神篇】Java虚拟机(JVM)高频面试题
  • Spring Validation校验
  • 吃透 Golang 基础:数据结构之数组
  • 高级SQL技巧:窗口函数与复杂查询优化实战
  • RestFul操作ElasticSearch:索引与文档全攻略
  • 【基于SpringBoot的图书购买系统】深度讲解 分页查询用户信息,分析前后端交互的原理
  • [Java实战] Docker 快速启动 Sentinel 控制台(二十八)
  • 【node.js】核心进阶
  • IP风险画像技术:如何用20+维度数据构建网络安全护城河?
  • 73.矩阵置零
  • 【b站计算机拓荒者】【2025】微信小程序开发教程 - 3 项目目录结构
  • 《Flask vs Django:项目规模、灵活性与开发时间的深入比较》
  • IDEA2025版本使用Big Data Tools连接Linux上Hadoop的HDFS
  • C# 语法篇:字段的定义和运算
  • linux crontab定时执行python找不到module问题解决
  • window 安装 wsl + cuda + Docker
  • 2025年通信系统与智能计算国际学术会议(CSIC2025)
  • vue2+webpack环境变量配置
  • 将 /dev/vdb1 的空间全部合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区)