Java 2D阵列问题

0 java multidimensional-array

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

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

iPad 999.9
iPod 123.4
iPhone 432.1
Run Code Online (Sandbox Code Playgroud)

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

   String[] product = {"iPad", "iPod", "iPhone"};
Run Code Online (Sandbox Code Playgroud)

但是,在2D数组中,如果我像这样分配:

String[][] array = new String[3][1];
array[0][1] = "iPad";
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

Nik*_*bak 8

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

class Product {
    String name;
    double price;
}
Run Code Online (Sandbox Code Playgroud)

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

现在,您可以轻松访问产品阵列而无需进行类型转换.

Product[] array = new Product[3];
array[0] = new Product();
array[0].name = "iPad";
array[0].price = 123.4;
Run Code Online (Sandbox Code Playgroud)

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

    Product[] array = {
        new Product("iPad", 123.4),
        new Product("iPod", 234.5),
        new Product("iPhone", 345.6)
    };
Run Code Online (Sandbox Code Playgroud)

要允许排序,可以实现Comparable接口然后调用Arrays.sort(myProductArray):

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

    public int compareTo(Product p) {
        return ((Double) price).compareTo(p.price);
    }
}
Run Code Online (Sandbox Code Playgroud)