リンクリストは要素ノードの論理的な関係に従って配置されたデータ構造です。この記事では Java のリンク リストについて説明しますので、興味のある方は学んでみてください。
リンクリストは、要素ノードの論理的な関係に従って配置されたデータ構造です。リンク リストを使用して複数のデータを保存できます。これは配列の概念に似ています。
しかし、配列自体には欠点があります。配列の長さは固定されており、変更することはできません。長さが固定されている場合、最初の選択肢は間違いなく配列ですが、実際の開発ではコンテンツの長さが重要になります。保存されるかどうかが不確かな場合は、配列の代わりにリンク リストのような構造を使用できます。
リンクリストは最も単純なデータ構造であり、その主な目的は参照関係を利用して複数のデータを保存することですので、今保存するデータが文字列(参照型)であると仮定すると、以下のように保存することができます。図のような関係になります。
Java リンク リスト コード:
//每一个链表实际上就是由多个节点组成的 public class Node { // 定义一个节点 private String data; // 用于保存数据 private Node next; // 用于保存下一个节点 // 每一个Node类对象都必须保存有响应的数据 public Node(String data) { this.data = data; } public void setNext(Node next) { this.next = next; } public Node getNext() { return this.next; } public String getData() { return this.data; } // 实现节点的添加 // 第一次调用(Link):this代表Link.root // 第二次调用(Node):this代表Link.root.next // 第三次调用(Node):this代表Link.root.next.next public void addNode(Node newNode) { if (this.next == null) { // 如果只有一个节点 this.next = newNode; // 保存新节点 } else { // 当前节点后面还有节点 // 当前节点的下一个节点继续保存 this.next.addNode(newNode); } } // 第一次调用(Link):this代表Link.root // 第二次调用(Node):this代表Link.root.next // 第三次调用(Node):this代表Link.root.next.next public void printNode() { System.out.println(this.data);// 输出当前数据 if (this.next != null) {// 如果还有下一个节点 this.next.printNode();// 输出下一节点 } } } public class LinkDemo { public static void main(String[] args) { Link link = new Link() ; link.add("hello"); //存放数据 link.add("world"); link.add("wwww"); link.print(); //展示数据 } } //负责数据的设置和输出 public class Link { private Node root; //根节点 //增加数据 public void add (String data){ //为了设置数据的先后关系,所以将data包装在一个Node类对象 Node newNode = new Node(data); if(this.root == null ){ //一个链表只有一个根节点 this.root = newNode; //将新的节点设置为根节点 }else{ //从root节点后找到合适的位置 this.root.addNode(newNode); } } //输出数据 public void print(){ if( this.root != null ){ this.root.printNode(); } } }
関連学習の推奨事項: Java 基本チュートリアル
以上がJavaのリンクリストとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。