Javaのリンクリストとは何ですか

little bottle
リリース: 2020-09-18 09:23:44
オリジナル
9013 人が閲覧しました

リンクリストは要素ノードの論理的な関係に従って配置されたデータ構造です。この記事では Java のリンク リストについて説明しますので、興味のある方は学んでみてください。

Javaのリンクリストとは何ですか

リンクリストは、要素ノードの論理的な関係に従って配置されたデータ構造です。リンク リストを使用して複数のデータを保存できます。これは配列の概念に似ています。

しかし、配列自体には欠点があります。配列の長さは固定されており、変更することはできません。長さが固定されている場合、最初の選択肢は間違いなく配列ですが、実際の開発ではコンテンツの長さが重要になります。保存されるかどうかが不確かな場合は、配列の代わりにリンク リストのような構造を使用できます。

リンクリストは最も単純なデータ構造であり、その主な目的は参照関係を利用して複数のデータを保存することですので、今保存するデータが文字列(参照型)であると仮定すると、以下のように保存することができます。図のような関係になります。

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート