Java二维数组问题
问题描述:
我想在2D数组中分配一些值。Java二维数组问题
我有2个属性叫产品和价格。
iPad 999.9
iPod 123.4
iPhone 432.1
在一维数组中,我知道如何分配产品值。
String[] product = {"iPad", "iPod", "iPhone"};
然而,在二维数组,如果我给你这样的:
String[][] array = new String[3][1];
array[0][1] = "iPad";
我如何分配浮点数到阵列?
此外,我有一个排序的问题。
因为我将2D数组的类型声明为String。
我可以使用此数组排序浮动价格吗?
或者我需要声明另一个数组来做排序? 谢谢
答
如果您使用对象而不是阵列来存储产品,那么您将节省很多麻烦。例如,
class Product {
String name;
double price;
}
(必要时添加访问修饰符,制定者/ getter和构造函数)
现在,您可以轻松地访问产品阵列,而不进行类型转换。
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);
}
}
我会建议服用仿制药的优势,使产品扩展可比较。 –
2011-03-06 03:31:52
@ZachLangley谢谢,更新。 – 2011-03-06 03:33:59