我正在为一家服装店编写一个小项目。 在我的一个班级中,将传递2个变量(项目& 价格) 每次用户选择一个 某些产品...
他们将被传递到两种不同的方法..
添加项,添加价格。
我试图拿出第一个已经添加到购物车中的所有衣服的阵列,另一个拿着每个项目的所有价格
每个项目及其价格都有类似的索引,因为它们是同时添加的......
现在......我的问题是我确实希望将这两个 ArrayLists 传递给我的方法“ PrintRecipt()”,这样我就能够打印物品及其价格在他们面前...
代码: -
package clothesshop;
import java.util.ArrayList;
public class Cart {
void cartAddi(String item){//adding a certain item will be passed here
ArrayList<String> clothes = new ArrayList<String>(5);
clothes.add(item);
}
int cartAddp(int price){//along with its price to be added to the cart
ArrayList<Integer> cost = new ArrayList<Integer>(5);
cost.add(price); int TotalP=0;
for (int total : cost) {
TotalP = TotalP + total; //total price
}
return TotalP;
}
void PrintRecipt(){
//taking both ArrayLists and printing them here?
}
}
答案 0 :(得分:2)
为什么要在其函数中声明两个ArrayLists? 将它们作为字段成员,因此您可以从其他函数访问它们,当然,在您编写的代码中,您不能添加多个项目,因为每个add都会创建一个新的ArrayList并且没有内存过去的车加了。 将它们设为字段,并在添加函数中添加到所需特定数组的字段。 在您询问的函数中,只需对ArrayList大小执行for循环,并在每次迭代中打印第一个数组的第i个元素和第二个数组的第i个元素。
答案 1 :(得分:1)
package clothesshop;
import java.util.ArrayList;
public class Cart {
private ArrayList<String> clothes = new ArrayList<String>(5);
private ArrayList<Integer> costs = new ArrayList<Integer>(5);
int cartAdd(String item, int price){//adding a certain item will be passed here
clothes.add(item);
costs.add(price);
int TotalP=0;
for (int total : costs) {
TotalP = TotalP + total; //total price
}
return TotalP;
}
void PrintRecipt() {
for (int i=0; i<clothes.length; i++) {
System.out.println(clothes.get(i) + " at " + costs.get(i));
}
}
}
答案 2 :(得分:1)
您可以使用单个HashMap存储项目的价格。您需要将其声明为实例变量。然后在printRecipt()内部,简单地遍历hashmap条目并根据您想要的格式打印值。
package clothesshop;
import java.util.ArrayList;
public class Cart {
private HashMap<String, int> items = new HashMap<String, int>(5);
int cartAdd(String item, int price){//adding a certain item will be passed here
items.add(item, price);
int TotalP=0;
for (int total : costs) {
TotalP = TotalP + total; //total price
}
return TotalP;
}
void PrintRecipt() {
Iterator it = items.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey() + " at " + pair.getValue());
}
}
}