Java 遍历对象的arraylist
我正在处理一个项目,该项目有一个名为Items的类和一个名为totals的方法,该方法计算Items对象数组的总计。 由于某些原因,它看不到项目,我知道我遗漏了一些简单或明显的东西,但我就是想不出来。我们将不胜感激Java 遍历对象的arraylist,java,object,arraylist,Java,Object,Arraylist,我正在处理一个项目,该项目有一个名为Items的类和一个名为totals的方法,该方法计算Items对象数组的总计。 由于某些原因,它看不到项目,我知道我遗漏了一些简单或明显的东西,但我就是想不出来。我们将不胜感激 public void totals(){ int index=0; for (Iterator it = items.iterator(); it.hasNext();) { Items i = it.next(); double it
public void totals(){
int index=0;
for (Iterator it = items.iterator(); it.hasNext();) {
Items i = it.next();
double itotal;
itotal = items.get(index).Items.getTotal();
}
}
这是Items类
public class Items {
public String name;//instance variable for item name
public int number;//instance variable for number of item
public double price;//instance variable for unit price
public double total;//instance variable for total
Items(String name,int number,double price){
this.name=name;
this.number=number;
this.price=price;
total=number*price;
}
public void setName(String name){
this.name=name;
}
public void setNumber(int number){
this.number=number;
}
public void setPrice(double price){
this.price=price;
}
public void setTotal(){
total=number*price;
}
public String getName(){
return name;
}
public int getNumber(){
return number;
}
public double getTotal(){
return total;
}
public double getPrice(){
return price;
}
提前感谢您的帮助。这里有许多潜在问题 在for循环中,您声明
项i
,但从不使用它。也许it=it.next()
应该是for循环的一部分
您可以调用items.get(index)
,但index
始终为0。您可能希望在此处使用it
您可以声明double itotal,并在for循环中分配它,因此每次迭代都会覆盖它。也许你想在循环外声明一个初始值,然后在循环内增加它。基本上,有两个缺陷:
itotal
变量,它是在循环中声明的i
totals
方法不应该返回一些东西(比如itotal
)吗
在我看来,迭代items数组的正确方法是
public double totals(){
double itotal = 0.0; //#A
for (Iterator<Items> it = items.iterator(); it.hasNext();) { //#B
Items i = it.next(); //#C
itotal += i.getTotal(); //#D
}
return itotal; //#E
}
公共双倍总计(){
双itotal=0.0;/#A
for(Iterator it=items.Iterator();it.hasNext();){/#B
Items i=it.next();/#C
itotal+=i.getTotal();/#D
}
返回itotal;/#E
}
基本上:
- #A在这里初始化
变量(循环外部),该变量将包含所有项目的总计itotal
- #B您开始迭代所有项目
- #C您将获得数组中的下一项
- #D您用当前项目的总计增加总计
- #你把总数还给我吗
list
,迭代器声明可以声明为iterator
,并且项目在循环中会有正确的类型。噢,哇!现在我感觉自己像个傻瓜(我是),但这让我走了。谢谢你!很高兴你找到了你的方式;)谢谢!