Код: Выделить всё
package bstmap;
import java.util.Iterator;
import java.util.Set;
public class BSTMap implements Map61B{
private static class Node {
private final K key;
private final V value;
private Node left;
private Node right;
private Node(K key, V value) {
this.key = key;
this.value = value;
this.left = null;
this.right = null;
}
}
private Node root;
private int size;
public BSTMap() {
root = null;
size = 0;
}
@Override
public boolean containsKey(K key) {
Node current = root;
while (current != null) {
if (current.key.equals(key)) {
return true;
}
if (current.key.compareTo(key) < 0) {
current = current.right;
} else {
current = current.left;
}
}
return false;
}
Я не использую необработанный тип, поскольку указываю общие типы, используемые внутренним классом, то есть Node , но почему Java не учитывает ключ Node типа K, расширяющий интерфейс Comparable? Использование необработанного типа означает, что мы используем класс без явного указания аргументов типа для переменных универсального типа, но здесь все было указано правильно.
Подробнее здесь: https://stackoverflow.com/questions/786 ... ile-k-exte