Java对象比较

时间:2014-04-22 08:37:23

标签: java compare abstract compareto

private Comparable[] items = new Comparable[1000000];   

bubbleSort(items);

public static <T extends Comparable<T>> void bubbleSort(T[] list){

    T temp;
    for (int k = 1; k < list.length; k++) {
    // Perform the kth pass
        for (int i = 0; i < list.length - k; i++) {
            if (list[i].compareTo(list[i + 1]) > 0){
                temp = list[i];
                list[i] = list[i + 1];
                list[i + 1] = temp;
            }
        }
    }
}

我遇到的问题是if (list[i].compareTo(list[i]) > 0)。我已经评论了所有内容,一次一行。这是导致错误的唯一因素,并没有在输出中给出任何解释。它是哪条线。它将在if,并调用bubbleSort方法。

1 个答案:

答案 0 :(得分:0)

private Comparable[] items = new Comparable[1000000];  

此行不初始化数组中的任何元素。您在每个广告位中都有null,因此您的NullPointerException

或许你只是没有发布初始代码,但问题就在那里。