Javaジェネリックを使用せずに、Javaで単一リンクリストに複数のサブリストを作成する方法について少し苦労しています。オーバーフローで複数の質問を読みましたが、それらのほとんどは問題を解決するためにジェネリックを実装しています。基本的に、Dog、Cat、Snake などの値でリンクされたリストを作成し、次のようなそれぞれのサブリストを作成する構造が必要です。
犬 ---> プードル、レトリーバー
| |
v
猫 ---> シベリア
| |
v
ヘビ ---> コブラ、パイソン
私の主な問題は add メソッドにあると思います:
public void add(String topList, String botList)
{
head = new Node(topList, botList, head);
}
topList: [犬、猫、ヘビ] と botList:[プードル、レトリバー、シベリア、コブラ、パイソン]。
この addMethod では、ヘッド ノードから 2 つの異なるリストに分岐しているだけで、実際に topList を botList の要素にリンクしていないように感じます。
私も試しました:
public void add(String topList, String botList)
{
head = new Node(topList, head);
head = new Node(botList, topList);
}
しかし、void add メソッドに 2 つの String 変数があるため、うまくいかなかったと確信しています。
私の質問は、どうすれば topList 要素を botList 要素にリンクできるでしょうか? ヘルプやリファレンスをいただければ幸いです。
これは私がこれまでに持っているものです:
import java.util.*;
public class animal
{
Node head;
public animal()
{
head = null;
}
public void add(String topList, String botList)
{
head = new Node(topList, botList, head);
}
public String toString()
{
String x;
StringBuilder sb = new StringBuilder();
Node p = head;
while (p != null)
{
sb.append(p.topList + "\n " + p.botList +"\n");
p = p.next;
}
return new String (sb);
}
public static class Node
{
String topList;
String botList;
Node next;
public Node (String t, String b, Node n)
{
topList = t;
next = n;
botList = b;
}
}
public static void main(String args[])
{
animal list = new animal();
list.add("Snake", "python");
list.add("Dog", "poodle");
list.add("Cat", "siberian");
System.out.println(list);
}
}
出力は望ましいものですが、2 つのリストをリンクしていないことはわかっています。また、botList に追加できる名前は 1 つだけで、さらに追加できるようにしたいと考えています。