我刚刚开始编写Java,我正在尝试模拟一个游戏商店,并且我有一个数组来打印要购买的每件商品的值。对于数组的每个索引,都有一个项的名称。例如,“开放的宝石”的价格是500美元。如何将字符串名称附加到每个数组索引的价格?我可以通过调用它的下标并附加它的项目名称来打印medicineList的每个实例,但这将取代for循环的用途。我很有兴趣看看有没有别的办法。任何帮助都将不胜感激。下面是方法:
public static int purchaseMedicine(int goldAmount) {
int[] medicineList = {500, 800, 2000, 8000, 4000, 200, 200};
int i = 0;
for(i = 0; i < medicineList.length; i++) {
System.out.printf("%d\n", medicineList[i]);
}
System.out.printf("\tGold %d\n\n", goldAmount);
return i; // Returns the instances of medicineList
}发布于 2012-02-16 18:00:11
理想情况下,创建一个类。比方说。游戏,有名字和价格,
class Game {
public String name;
public int price;
Game(String name, int price) {
this.name = name;
this.price = price;
}
public static void main(String args[]) {
Game[] medicineList = { new Game ("Skyrim", 500), new Game("Jewel of Open", 400) };
for(int i = 0; i < medicineList.length; i++) {
System.out.printf("%d\n", medicineList[i].price);
}
}
}使用Class的好处是,以后您可以轻松地向它添加更多属性,例如Rating,而不需要更改太多代码。
发布于 2012-02-16 17:50:18
您可以使用地图:
Map<String, Integer> prices = new HashMap<String, Integer>();
prices.add("Skyrim", 500);
prices.add("GTA", 800);
///....然后,您可以遍历映射:
for (Map.Entry<String, Integer> entry : prices.entrySet()) {
System.out.println(entry.getKey() + " costs " + entry.getValue());
}发布于 2012-02-16 17:55:19
你可以只创建2个数组。
public static int purchaseMedicine(int goldAmount) {
int[] medicineList = {500, 800, 2000, 8000, 4000, 200, 200};
String[] name = { "names here" };
for(int i = 0; i < medicineList.length; i++) {
System.out.printf(name[i] + medicineList[i]);
}
}https://stackoverflow.com/questions/9308901
复制相似问题