我想在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。
我可以使用此数组对浮动价格进行排序吗?
或者我需要声明另一个数组来进行排序? 感谢
答案 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);
}
}