Во-первых, это стоит быть ясно, о разнице между массивом и ArrayList
- они не то же самое на всех.
Однако в любом случае вы не можете делать то, что хотите. Самое близкое, что вы, возможно, придете, объявляет ваш собственный тип. (EDIT: у моего исходного кода была двойная или строка ... Я теперь изменил ее как двойную и строку. Дайте мне знать, если это изменение не что вы имели в виду.)
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>
- но если это не самый только естественный порядок, который имеет смысл, я бы написать 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
, чтобы отсортировать массив.
Нет, это невозможно. Что именно ты пытаешься сделать? Может быть, мы сможем помочь вам придумать обходной путь. –