新しい の構築を可能にするクラスがありますListNode
。を構築するたびに、必要なタイプListNode
を示す必要があります。タイプの一部は、インターフェイスを実装する別のクラスであり、他のクラスは何でもかまいません。ListNode
Comparable
ListNode<Date, String> node = new ListNode<>();
は一例です。
このような例では、次のListNode
ようになります。
public class ListNode {
Date key;
String value;
ListNode<Date, String> next;
ListNode(Date key, String value, ListNode<Date,String> next) {
this.key = key;
this.value = value;
this.next = next;
}
}
<
との間のものはジェネリック型であり、 「Java Generics」>
としてよく知られている Java の機能です。あなたはそれを読んでください。1 回の投稿で完全な説明を行う範囲をわずかに超えていますが、上記の例からアイデアが得られることを願っています。これにより、一般的に疑似型引数を取るクラスを書くことができます。
同等のインターフェースは、ある種の線形順序付けを提供する特別なインターフェースです。たとえば、文字列をアルファベット順に並べ替えることができます。この場合、次のようになります。
public StringComparator implements Comparable<String> ....
Comparable
メソッドの実装を強制的に定義するキーワードによって機能します。
public int compareTo(String other) {
...
}
返された整数が負の場合、もう一方がこのアイテムの前に来ます。戻り値が正の場合、もう一方がこのアイテムの後に来ます。戻り値がゼロの場合、2 つのアイテムは (順序付けのために) 同等です。