Thứ nhất, nó có giá trị là rõ ràng về sự khác biệt giữa một mảng và một ArrayList
- chúng không phải là điều tương tự ở tất cả.
Tuy nhiên, trong cả hai trường hợp, bạn không thể làm những gì bạn muốn. Gần nhất bạn có thể đến là tuyên bố loại của riêng bạn. (CHỈNH SỬA: Mã ban đầu của tôi có một số hoặc một chuỗi ... Bây giờ, tôi đã thay đổi mã đó thành một chuỗi kép và.)
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;
}
}
Sau đó, tạo ArrayList<DoubleAndString>
hoặc DoubleAndString[]
.
Bây giờ, điều này cảm thấy hơi vani vào lúc này - có lẽ giá trị chuỗi kép và chuỗi thực sự có ý nghĩa lớn hơn - ví dụ như tên và điểm số. Nếu vậy, hãy đóng gói trong một loại mô tả việc ghép nối phù hợp hơn.
Đối với đặt hàng - bạn thể làm DoubleAndString
thực hiện Comparable<DoubleAndString>
- nhưng trừ khi đó là chỉ trật tự tự nhiên mà có ý nghĩa, tôi muốn viết một Comparator<DoubleAndString>
:
public class DoubleComparator implements Comparator<DoubleAndString>
{
public int compare(DoubleAndString ds1, DoubleAndString ds2)
{
return Double.compare(ds1.getDouble(), ds2.getDouble());
}
}
Sau đó, bạn có thể sử dụng Collections.sort
để sắp xếp một số ArrayList<DoubleAndString>
hoặc Arrays.sort
để sắp xếp một mảng.
Nguồn
2010-05-12 01:51:11
Không, điều này là không thể. Chính xác những gì bạn đang cố gắng để làm? Có lẽ chúng tôi có thể giúp bạn tìm ra cách giải quyết. –