Erstens verwenden, ist es wert zwischen einem Array klar über den Unterschied, und ein ArrayList
- sie überhaupt nicht dasselbe sind.
In beiden Fällen können Sie jedoch nicht tun, was Sie wollen. Der nächstgelegene Ort, an den Sie wahrscheinlich kommen können, ist, Ihren eigenen Typ zu deklarieren. (BEARBEITEN: Mein ursprünglicher Code hatte eine doppelte oder eine Zeichenfolge ... Ich habe es jetzt geändert, um eine doppelte und eine Zeichenfolge zu sein. Lassen Sie mich wissen, wenn diese Änderung ist nicht was Sie im Sinn hatten.)
public final class DoubleAndString
{
private final String stringValue;
private final double doubleValue;
public DoubleAndString(String stringValue, double doubleValue)
{
this.stringValue = stringValue;
this.doubleValue = doubleValue;
}
public String getString()
{
return stringValue;
}
public String getDouble()
{
return doubleValue;
}
}
Dann wird ein ArrayList<DoubleAndString>
oder ein DoubleAndString[]
erstellen.
Nun fühlt sich das im Moment etwas an, vermutlich haben die Doppel- und String-Werte tatsächlich eine größere Bedeutung - zum Beispiel einen Namen und eine Punktzahl. Wenn ja, kapseln Sie das in einem Typ ein, der die Paarung passender beschreibt.
Wie für die Bestellung - Sie könnteDoubleAndString
Comparable<DoubleAndString>
machen implementieren - aber es sei denn, das ist der nur natürliche Ordnung, die Sinn macht, würde ich schreiben ein Comparator<DoubleAndString>
:
public class DoubleComparator implements Comparator<DoubleAndString>
{
public int compare(DoubleAndString ds1, DoubleAndString ds2)
{
return Double.compare(ds1.getDouble(), ds2.getDouble());
}
}
Dann können Sie Collections.sort
verwenden, um Sortiere ein ArrayList<DoubleAndString>
oder Arrays.sort
, um ein Array zu sortieren.
Nein, das ist nicht möglich. Was genau versuchst du zu tun? Vielleicht können wir Ihnen helfen, einen Workaround zu finden. –