Во-первых, стоит иметь в виду разницу между массивом и ArrayList
- это совсем не одно и то же.
Однако в любом случае вы не можете делать то, что хотите. Самое близкое, на что вы можете прийти - это объявление своего типа. (РЕДАКТИРОВАТЬ: мой исходный код имел двойную или строку ... Теперь я изменил ее на двойную и строку. Дайте мне знать, если это изменение не , что вы имели в виду.)
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;
}
}
Затем создайте ArrayList<DoubleAndString>
или DoubleAndString[]
.
Теперь, это кажется несколько ванильным на данный момент - предположительно, двойные и строковые значения на самом деле имеют большее значение - например, имя и оценка. Если это так, инкапсулируйте это в тип, который описывает связывание более подходящим образом.
Что касается порядка - вы могли бы сделать DoubleAndString
реализовать Comparable<DoubleAndString>
- но если это не естественный порядок only , который имеет смысл, я бы написал Comparator<DoubleAndString>
:
public class DoubleComparator implements Comparator<DoubleAndString>
{
public int compare(DoubleAndString ds1, DoubleAndString ds2)
{
return Double.compare(ds1.getDouble(), ds2.getDouble());
}
}
Затем вы можете использовать Collections.sort
для сортировки ArrayList<DoubleAndString>
или Arrays.sort
для сортировки массива.