我剛開始研究自動售貨機程序,但在這裏遇到了問題。產出不像預期的那樣。這是我的代碼。ArrayList錯誤的輸出
自動販賣機:
import java.util.*;
public class VendingMachine {
static List<ShowMenu> menu = new ArrayList<ShowMenu>();
public static void main(String [] args){
System.out.println("Please choose from the menu below:");
for(int i=0; i<9; i++){
String[] item = {"Water", "Coke" , "Diet Coke", "Iced Tea", "Swiss Chocolate", "Candy", "Chips", "Bubble Gum", "Turkish Delight"};
int[] count = {10,10,10,10,10,10,10,10,10};
double[] price = {0.75,1.20,1.20,1.00,1.50,0.95,1.10,0.50,1.20};
ShowMenu items = new ShowMenu(item, count, price);
menu.add(items);
}
int k=1;
for(ShowMenu item: menu){
System.out.print(k +".");
k = k + 1;
System.out.println(item);
}
}
}
ShowMenu:
import java.util.*;
public class ShowMenu {
public String[] item;
public int[] count;
public double[] price;
public ShowMenu(String[] items, int[] count, double[] price){
this.item = items;
this.count = count;
this.price = price;
}
public String toString(){
return " " + item + " " + "$" + price;
}
}
這是下面的輸出。我期待以下列價格列出價格,例如 1.水價爲0.75美元,但它顯示了另一件事。
Please choose from the menu below:
1. [Ljava.lang.String;@5f47ff11 $[[email protected]
2. [Ljava.lang.String;@574f7121 $[[email protected]
3. [Ljava.lang.String;@5e7d093a $[[email protected]
4. [Ljava.lang.String;@2ab6994f $[[email protected]
5. [Ljava.lang.String;@324a897c $[[email protected]
6. [Ljava.lang.String;@6f9702b1 $[[email protected]
7. [Ljava.lang.String;@226946d2 $[[email protected]
8. [Ljava.lang.String;@173a0067 $[[email protected]
9. [Ljava.lang.String;@4ad9d6ae $[[email protected]
任何幫助.. !!
我會使用一個相關地圖。會清理你的代碼一些。 – NightSkyCode
您需要正確覆蓋'toString()'方法。 – TheLostMind