• 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. }

    二、测试结果

    添加成功,代码可行。 

  • 相关阅读:
    作用域和作用域链
    推荐一款性价比高、功能完善的资产管理系统
    QChart问题整理
    Maglev: 一种快速可靠的负载均衡器
    JDBC 连接数据库的四种方式
    第六章·建造者模式
    Android控件全解手册 - 1.5万字了解Button的一切
    【性能测试】【监控】Python使用psutil实现一个简单的系统资源监控
    二分查找的讲解
    推荐计划为什么有效?需要推荐计划的10个原因
  • 原文地址:https://blog.csdn.net/weixin_51733609/article/details/126037062