包含两个类:
1、SingleLinked类
2、TestLinkedList类
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)
//2022.7.28
import java.util.Iterator;public class SingleLinked implements Iterable{private Node first;//记录第一个结点的地址//添加新的结点public void add(Object element){Node newNode = new Node(element,null);//查看是否是第一个结点if(first == null){first = newNode;}else {//找到当前链表的最后一个结点,将新结点添加到它的后面Node node = first;while ( != null){node = ;}//找到最后一个结点后,跳出循环,将新结点加在最后一个结点上 = newNode;}}@Overridepublic Iterator iterator() {return new Itr();//返回Iterator接口的实现类}private class Itr implements Iterator{Node node = first;@Overridepublic boolean hasNext() {//判断是否有下一个元素return node!= null;}@Overridepublic Object next() {//取出下一个元素Object element = node.data;node = ;return element;}}//创建一个内部类:结点private class Node{//元素的数据Object data;//下一个元素的地址Node next;//构造器public Node(Object data, Node next) {this.data = = next;}}
}
测试类,主程序的入口。
创建了一个SingleLinked类的对象list,调用添加元素的方法add()。
使用foreach循环,快速生成foreach方法的快捷方式为“iter”
//2022.7.28
public class TestLinkedList {public static void main(String[] args) {SingleLinked list = new SingleLinked();list.add("hello");list.add("world");//foreach循环输出的快捷键为"iter"for (Object o : list) {System.out.println(o);}}
}
添加成功,代码可行。
本文发布于:2024-01-29 12:33:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650284115316.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |