Java では、ポインターがないため、リストをどのように実装するのか。
日本語では、「Javaでは、ポインタを直接使用せずに、オブジェクト参照を使用してリストデータ構造を実装することができます。」
リスト内の各ノードは、データ領域と次のノードへの参照を含むオブジェクトです。まず、リストノードクラスを定義します。例:
public class ListNode {
public int val;
public ListNode next;
public ListNode(int val) {
this.val = val;
this.next = null;
}
}
その後、このノードクラスを使用してリンクリストを作成し、参照を使ってノードをつなげることができます。例えば、3つのノードを含むリンクリストを作成する場合:
ListNode head = new ListNode(1);
ListNode second = new ListNode(2);
ListNode third = new ListNode(3);
head.next = second;
second.next = third;
3つのノードを含むリストが作成され、各ノードの値はそれぞれ1、2、3です。ノードをアクセスや操作するには、リストを走査します。
Javaのリンクリストの実装は、手動でメモリ管理する必要はありません。なぜならJavaには自動的なメモリ管理機構(ガベージコレクター)が備わっており、使用されなくなったオブジェクトを自動的に回収できるからです。