Java 2D阵列问题

时间:2011-03-06 03:22:05

标签: java multidimensional-array

我想在2D数组中分配一些值。

我有2个属性叫做产品和价格。

iPad 999.9
iPod 123.4
iPhone 432.1

在一维数组中,我知道如何分配产品值。

   String[] product = {"iPad", "iPod", "iPhone"};

但是,在2D数组中,如果我这样指定:

String[][] array = new String[3][1];
array[0][1] = "iPad";

如何将浮点数分配给数组?

另外,我有一个排序问题。

因为我将2D数组的类型声明为String。

我可以使用此数组对浮动价格进行排序吗?

或者我需要声明另一个数组来进行排序? 感谢

1 个答案:

答案 0 :(得分:8)

如果您使用对象而不是数组来存储产品,那么您将省去很多麻烦。如,

class Product {
    String name;
    double price;
}

(如有必要,添加访问修饰符,setter / getters和构造函数)

现在,您可以轻松访问产品数组而无需进行类型转换。

Product[] array = new Product[3];
array[0] = new Product();
array[0].name = "iPad";
array[0].price = 123.4;

或者,如果添加构造函数,

    Product[] array = {
        new Product("iPad", 123.4),
        new Product("iPod", 234.5),
        new Product("iPhone", 345.6)
    };

要允许排序,您可以实施Comparable界面,然后调用Arrays.sort(myProductArray)

class Product implements Comparable<Product> {
    String name;
    double price;

    public int compareTo(Product p) {
        return ((Double) price).compareTo(p.price);
    }
}