使用泛型创建节点遍历类?

问题描述 投票:0回答:1

有人知道解决这个问题的最佳方法吗?

我收到以下错误,我认为这意味着我需要一种不同的方法来比较节点的数据元素。

java: bad operand types for binary operator '<'
  first type:  V
  second type: V

代码:

class Node<V> {
    Node<V> left;
    Node<V> right;
    V data;

    public Node(V d) {
        left = null;
        right = null;
        data = d;
    }

    public void Insert(V d) {
        if (data != null) {
            if (d < data) {
                if (left == null) {
                    left = Node(d);
                } else {
                    left.Insert(d);
                }
            }
        }
    }
}
java
1个回答
0
投票

您收到此错误是因为编译器不知道

V
是否是支持与
<
进行比较的类型。您可以使用
compareTo()
方法来比较泛型类型元素。 查看更多信息

示例:

public void Insert(V d) {
        if (data != null) {
            if (d.compareTo(data) < 0) {
                if (left == null) {
                    left = new Node<>(d);
                } else {
                    left.Insert(d);
                }
            }
        }
}
© www.soinside.com 2019 - 2024. All rights reserved.