In primo luogo, vale la pena di essere chiari circa la differenza tra un array e un ArrayList
- non sono la stessa cosa a tutti.
Tuttavia, in entrambi i casi non è possibile fare ciò che si desidera. Il più vicino che puoi probabilmente è dichiarare il tuo tipo. (MODIFICA: il mio codice originale aveva un doppio o una stringa ... Ora lo ho modificato per essere un doppio e una stringa. Fatemi sapere se questo cambiamento non è quello che avevate in mente.)
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;
}
}
quindi creare ArrayList<DoubleAndString>
o un DoubleAndString[]
.
Ora, questo sembra un po 'vaniglia al momento - presumibilmente i valori di doppia e stringa hanno in realtà un significato più grande - un nome e un punteggio, per esempio. Se è così, incapsula quello in un tipo che descrive l'accoppiamento in modo più appropriato.
quanto per l'ordinazione - si potrebbe fare DoubleAndString
attuare Comparable<DoubleAndString>
- ma a meno che questo è l'solo ordinamento naturale che ha un senso, mi piacerebbe scrivere un Comparator<DoubleAndString>
:
public class DoubleComparator implements Comparator<DoubleAndString>
{
public int compare(DoubleAndString ds1, DoubleAndString ds2)
{
return Double.compare(ds1.getDouble(), ds2.getDouble());
}
}
quindi è possibile utilizzare Collections.sort
per ordina un ArrayList<DoubleAndString>
o Arrays.sort
per ordinare un array.
fonte
2010-05-12 01:51:11
No, questo non è possibile. Cosa stai cercando di fare esattamente? Forse possiamo aiutarti a trovare una soluzione alternativa. –