Ne peut invoquer compareTo(double) sur le type primitif double

La ligne return array[index1].compareTo(array[index2]); fournit une erreur "Ne peut invoquer compareTo(double) sur le type primitif double". Comment résoudre ce problème?

/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*::  This function implements a comparator of double values        :*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
private class ArrayIndexComparator implements Comparator<Integer>
{
    private final double[] array;

    public ArrayIndexComparator(double[] array)
    {
        this.array = array;
    }

    public Integer[] createIndexArray()
    {
        Integer[] indexes = new Integer[array.length];
        for (int i = 0; i < array.length; i++)
        {
            indexes[i] = i; //Autoboxing
        }
        return indexes;
    }

    @Override
    public int compare(Integer index1, Integer index2)
    {
         //Autounbox from Integer to int to use as array indexes
        return array[index1].compareTo(array[index2]);
    }
}


double[] dist = new double[centroids.size()];
//fill array...    
ArrayIndexComparator comparator = new ArrayIndexComparator(dist);
Integer[] indexes = comparator.createIndexArray();
Arrays.sort(indexes, comparator);
utiliser la Double classe 😉
Pour explorer plus, consultez la documentation de java et de l'intérieur qui vont dans le package java.lang.Double, ce qui est appelé une classe Wrapper et en Java pour chaque type primitif, il y a des correspondants des classes wrapper sont présents dans le java.lang paquet
Voici le lien pour la documentation docs.oracle.com/javase/7/docs/api

OriginalL'auteur Klausos Klausos | 2013-11-22