LinkedList 模拟源码
2021/10/20 14:09:56
本文主要是介绍LinkedList 模拟源码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Node
package com.why.LinkedList; /** * @Author WangHuaiyu * Created by 5290440298@qq.com * Date on 2021/10/20 13:41 * @Version 1.0 * @Param $ * @return $ */ public class Node { private Node pre; private Object obj; private Node next; public Node getPre() { return pre; } public void setPre(Node pre) { this.pre = pre; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } @Override public String toString() { return "Node{" + "pre=" + pre + ", obj=" + obj + ", next=" + next + '}'; } }
MyLinkedList
package com.why.LinkedList; /** * @Author WangHuaiyu * Created by 5290440298@qq.com * Date on 2021/10/20 13:43 * @Version 1.0 * @Param $ * @return $ */ public class MyLinkedList { //链中一定有一个首节点: Node first; //链中一定有一个尾节点: Node last; //计数器: int count = 0; //提供一个构造器: public MyLinkedList(){ } //添加元素方法: public void add(Object o){ if(first == null){//证明你添加的元素是第一个节点: //将添加的元素封装为一个Node对象: Node n = new Node(); n.setPre(null); n.setObj(o); n.setNext(null); //当前链中第一个节点变为n first = n; //当前链中最后一个节点变为n last = n; }else{//证明已经不是链中第一个节点了 //将添加的元素封装为一个Node对象: Node n = new Node(); n.setPre(last);//n的上一个节点一定是当前链中的最后一个节点last n.setObj(o); n.setNext(null); //当前链中的最后一个节点的下一个元素 要指向n last.setNext(n); //将最后一个节点变为n last = n; } //链中元素数量加1 count++; } //得到集合中元素的数量: public int getSize(){ return count; } //通过下标得到元素: public Object get(int index){ //获取链表的头元素: Node n = first; //一路next得到想要的元素 for(int i=0;i<index;i++){ n = n.getNext(); } return n.getObj(); } } class Test1{ //这是main方法,程序的入口 public static void main(String[] args) { //创建一个MyLinkedList集合对象: MyLinkedList ml = new MyLinkedList(); ml.add("aa"); ml.add("bb"); ml.add("cc"); System.out.println(ml.getSize()); System.out.println(ml.get(0)); System.out.println(ml); } }
这篇关于LinkedList 模拟源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01Java部署教程:新手入门指南
- 2024-11-01Java部署教程:从入门到实践
- 2024-11-01Java订单系统教程:新手入门指南
- 2024-11-01Java分布式教程:新手入门指南
- 2024-11-01Java管理系统教程:新手入门详解
- 2024-11-01Java监控系统教程:从入门到实践
- 2024-11-01SpringCloud Alibaba入门:轻松搭建微服务架构
- 2024-11-01Swagger入门:新手必读指南
- 2024-11-01Swagger入门:轻松搭建API文档
- 2024-11-01uni-APP入门:新手快速上手指南