gpt4 book ai didi

java - 打印 Java ArrayList 困境
转载 作者:行者123 更新时间:2023-12-02 04:46:55 25 4
gpt4 key购买 nike

最近,我学到了一些东西:我不知道如何使用 toString 方法。(如果您看过我的上一个问题,您将得到一个很好的示例。)

无论如何,我去年参加的 Java 入门类(class)中,正在经历一些未完成的程序,而这一个我无法完成。我努力成为一名更好的程序员,但面临着终极挑战:toString 方法。

基本概述是我必须编写一个“Grocery”商店程序,其中 ShoppingCart 类是 Grocery 对象的 ArrayList。

只有一个问题 - 当我运行该程序时,我得到

Grocery.ShoppingCart@2eeb3c84

我的老敌人,toString() 看起来像是必需的。我应该得到的输出是这样的:

[Tomatoes: 2.76 $1.39, Mac & Cheese: 6.0, $0.89]

现在,如果我打印出 Cart ArrayList (System.out.println(Cart)),我会得到:

[Tomatoes, 2.76, $1.39, Mac & Cheese, 6.0, $0.89]

正是我应该得到的输出。

这是怎么发生的?我怎样才能解决这个问题?当我打印出购物车数组列表时,我得到了我想要的输出(我仍然得到“Grocery.ShoppingCart@”)。我必须找到某种方法来用 ArrayList 替换“Grocery.ShoppingCart@[etc.]”。

有人有什么想法吗?谢谢!-克里斯

ShoppingCart 类的部分内容:

ArrayList<Grocery> Cart = new ArrayList<Grocery>();
int size = Cart.size();
double tot = 0.0;
public ShoppingCart(){
}
...
public void printReceipt() {
Grocery temp = new Grocery();
double pr = 0.0;
double qu = 0.0;
String n = "";
String con = "IF YOU SEE ME SOMETHING IS WRONG!";
double gr = 0.0;
for(int k = 0; k < size; k++){
temp = Cart.get(k);
n = temp.getName();
qu = temp.getQuan();
pr = temp.getPrice();
tot = qu * pr;
con = n + ":" + " " + qu + ", " + pr + "\t\t Total: $" + tot;
}
System.out.println("====RECIEPT====");
System.out.println("Grand Total:\t" + "$" + totalPr());
}

杂货类打印购物车

public static void testShoppingCartClass ()
{
System.out.println ("Testing ShoppingCart class\n");
ShoppingCart myCart = new ShoppingCart();

System.out.println (" ShoppingCart using default constructor: ");
System.out.println ("\t" + myCart);

myCart.addItem (new Grocery("Tomatoes", 2.76, 1.39));
myCart.addItem (new Grocery("Mozzarella", 0.95, 4.59));
myCart.addItem (new Grocery("Mac & Cheese", 6, 0.89));
System.out.println ("\n ShoppingCart after adding three items: ");
System.out.println ("\t" + myCart);
myCart.removeItem (1);
System.out.println ("\n ShoppingCart after removing an item: ");
System.out.println ("\t" + myCart);

System.out.println ("\n\nPrinting receipt: \n");
myCart.printReceipt();

System.out.println ("\n\nDone testing ShoppingCart class\n\n");
}

最佳答案

您可以覆盖toString以返回您想要的任何内容。就您而言,您似乎想要这样做:

class ShoppingCart {
ArrayList<Grocery> cart;
...

@Override
public String toString() {
return cart.toString();
}
}

关于java - 打印 Java ArrayList<Object> 困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597042/

25 4 0