• Java中单链表的创建


    一、代码分析:

    包含两个类:

    1、SingleLinked类

    2、TestLinkedList类


    (一)SingleLinked类

    1、该类实现(implements)了“Iterable接口”。

    (1)接口(interface

    ①接口中的方法包含:抽象方法(无方法体,实现接口时,必须重写)、接口的静态方法(static)、接口的默认方法(default)

    ②接口方法的调用:

    a. 接口中的抽象方法的调用通过创建实现类对象进行调用,"对象名.抽象方法名"。

    b. 接口中的静态方法的调用通过“接口名.静态方法名”。

    c. 接口中的默认方法的调用通过创建实现类对象进行调用,"对象名.默认方法名"。

    (2)重写Iterable接口的抽象方法public Iterator iterator()

    2、该类中存在内部类优点:高内聚、低耦合

    (1)内部类1:Node

    ①成员变量:Data(元素的数据)、next(下一个元素的地址)

    ②有参的构造器:public Node(Object data, Node next)

    (2)内部类2:Itr

    ① Itr实现了“Iterator”接口,对它的抽象方法进行重写。

    ②重写的方法:

    a.判断是否有下一个元素:public boolean hasNext() 
    b.取出下一个元素:public Object next()

    3、成员方法:

    添加新的结点:public void add(Object element)

    1. //2022.7.28
    2. import java.util.Iterator;
    3. public class SingleLinked implements Iterable{
    4. private Node first;//记录第一个结点的地址
    5. //添加新的结点
    6. public void add(Object element){
    7. Node newNode = new Node(element,null);
    8. //查看是否是第一个结点
    9. if(first == null){
    10. first = newNode;
    11. }else {
    12. //找到当前链表的最后一个结点,将新结点添加到它的后面
    13. Node node = first;
    14. while (node.next != null){
    15. node = node.next;
    16. }
    17. //找到最后一个结点后,跳出循环,将新结点加在最后一个结点上
    18. node.next = newNode;
    19. }
    20. }
    21. @Override
    22. public Iterator iterator() {
    23. return new Itr();//返回Iterator接口的实现类
    24. }
    25. private class Itr implements Iterator{
    26. Node node = first;
    27. @Override
    28. public boolean hasNext() {//判断是否有下一个元素
    29. return node!= null;
    30. }
    31. @Override
    32. public Object next() {//取出下一个元素
    33. Object element = node.data;
    34. node = node.next;
    35. return element;
    36. }
    37. }
    38. //创建一个内部类:结点
    39. private class Node{
    40. //元素的数据
    41. Object data;
    42. //下一个元素的地址
    43. Node next;
    44. //构造器
    45. public Node(Object data, Node next) {
    46. this.data = data;
    47. this.next = next;
    48. }
    49. }
    50. }

    (二)TestLinkedList类

    测试类,主程序的入口。

    创建了一个SingleLinked类的对象list,调用添加元素的方法add()。

    使用foreach循环,快速生成foreach方法的快捷方式为“iter


    1. //2022.7.28
    2. public class TestLinkedList {
    3. public static void main(String[] args) {
    4. SingleLinked list = new SingleLinked();
    5. list.add("hello");
    6. list.add("world");
    7. //foreach循环输出的快捷键为"iter"
    8. for (Object o : list) {
    9. System.out.println(o);
    10. }
    11. }
    12. }

    二、测试结果

    添加成功,代码可行。 

  • 相关阅读:
    Photoshop制作白色可爱音乐播放图标面板
    【云原生 • Kubernetes】kubernetes 核心技术 - Pod
    电脑重装系统word从第二页开始有页眉页脚如何设置
    StarRocks 社区:从初生到两周年的进化之路
    大数据:Flume安装部署和配置
    【单片机毕业设计】【mcuclub-hj-002】基于单片机的多路温度控制设计
    【目标检测】SPP-Net论文理解(超详细版本)
    Vue项目实战之电商后台管理系统(五) 商品分类模块
    什么是mvvm模式,优点是什么
    基于SpringBoot的单应用项目模板(考虑到后期做微服务,内部已经做了拆分)
  • 原文地址:https://blog.csdn.net/weixin_51733609/article/details/126037062