首页 > 解决方案 > Java,如何在泛型中进行比较

问题描述

我正在学习二叉树算法,但我在这里遇到了问题..

public class Binary_tree_list<T> {
    private Node<T> root;
    private int size;

    private static class Node<T> {
        private Node<T> left;
        private Node<T> right;
        private T data;

    ....

        public int compare(Node<T> other) {
            return this.data - other.data;
        }
    }

这会产生错误,说我不能-对参数 T 使用运算符。我该怎么办?

标签: java

解决方案


在你的情况下,T的类型很重要,但这不是你应该做的。

你的类T应该有一个 compareTo 或 compare 方法的正确实现,这取决于它正在实现什么接口。

看看这个https://www.baeldung.com/java-comparator-comparable


推荐阅读