我刚刚开始使用arrayLists - 基本上我需要弄清楚的是如何搜索我的arrayList以及是否找到相同的对象为它添加一个新的总值而不是交换它。
即。
arrayList = (hats, $45)
我有一个新的价值添加到帽子(即$ 10美元) - 所以帽子的最终新总数= $ 55
...如果帽子不在列表中就已经添加了。
感谢任何帮助!
答案 0 :(得分:1)
除非使用嵌套的ArraysList或Map,否则将无法使用String和Integer填充ArrayList。 但是您可以为ProductName和Price创建一个简单的类,并创建一个包含名称和价格的ArraysList。
public class Products {
private String product;
private int price;
public Products(String product, int price){
this.product = product;
this.price = price;
}
public String getProduct(){
return this.product;
}
public int getPrice(){
return this.price;
}
@Override
public String toString(){
return this.product +" "+ this.price;
}
public static void main(String[] args) throws ParseException {
ArrayList<Products> list = new ArrayList<>();
list.add(new Products("Hat",45));
list.add(new Products("Socks",10));
for (Products gd: list){
if (gd.getProduct().equals("Hat")){
int index = list.indexOf(gd);
list.set(index,new Products(gd.getProduct(),gd.getPrice+10));
}else {
// if productName not found
System.out.println("sorry products not available");
break;
}
}
System.out.println(list);
}
}
输出:
[帽子55,袜子10]
但是如果您不想要所有这个类并且仍然希望使用ArrayList作为作业,那么您可以使用包含名称和价格的ArrayList来执行此操作
ArrayList<String> list = new ArrayList<>();
list.add("Hat,45");
list.add("Socks,15");
for (String ss:list){
String[] spl = ss.split(",");
if (spl[0].equals("Hat")){
int index = list.indexOf(ss);
int value = Integer.parseInt(spl[1]) +10;
list.set(index,(spl[0]+","+value));
}
}
System.out.println(list);
输出:
[Hat,55,Socks,15]