首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环遍历对象和方法列表

使用for循环遍历对象和方法列表
EN

Stack Overflow用户
提问于 2012-04-30 14:59:30
回答 3查看 18.2K关注 0票数 0

完整的代码可以在这篇文章的底部找到,但真正让我担心的是,

代码语言:javascript
复制
for(zed = 0; zed<photoes.size(); zed++) {
totesPrice += photoes<zed>.getCost();
totesSize += photoes<zed>.getMegabytes();
totesSpeed = photoes<zed>.getSpeed();
}

理想情况下,totesPrice、totesSize和totesSpeed应该是存储在照片列表数组中的对象的get方法的总和。

代码语言:javascript
复制
// Import classes for class
import java.util.Arrays;
import java.util.List;
import javax.swing.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import java.util.ArrayList;

public class DigitalMain
{
  public static void main(String args[])
  {
    String cont = "Y";
    String heightString,width,bitpsString = "";
    String widthString = "";
    int zed;
    double bitps,pHS,pWS = 0.0;
    double totesSpeed = 0.0;
    double totesPrice = 0.0;
    double totesSize = 0.0;
    DecimalFormat wholeDigits = new DecimalFormat("0");
    DecimalFormat dec = new DecimalFormat("0.00");

    List<DigitalPhoto> photoes = new ArrayList<DigitalPhoto>();
    do
    {
    DigitalPhoto photo = new DigitalPhoto();
    heightString = JOptionPane.showInputDialog("Please enter height");
    pHS = Double.parseDouble(heightString);
    photo.setHeight(pHS);
    widthString = JOptionPane.showInputDialog("Please enter width");
    pWS = Double.parseDouble(widthString);
    photo.setWidth(pWS);
    JOptionPane.showMessageDialog(null, "Height: " + photo.getHeight() + "\nWidth: " + photo.getWidth() + "\nResolution: " + photo.getResolution() + " DPI\nCompression Ratio: " + photo.getCompression() + "\nRequired Storage: " + dec.format(photo.getKilo()) + " Kilobytes.\nPrice of Scanned Photo: $" + dec.format(photo.getCost()) + " dollars.");
    do
    {
    bitpsString = JOptionPane.showInputDialog("Please enter your internet connection speed in BITS not BYTES please.");
    bitps = Double.parseDouble(bitpsString);
    } while (bitps < 0 && bitps > 99999999);
    photo.setSpeed(bitps);

    for(zed = 0; zed<photoes.size(); zed++) {
    totesPrice += photoes<zed>.getCost();
    totesSize += photoes<zed>.getMegabytes();
    totesSpeed = photoes<zed>.getSpeed();
    }
    cont = JOptionPane.showInputDialog("\nType \'Y\' to try again or anything but \'Y\' to use values.");
    photoes.add(photo);
    } while (cont.equalsIgnoreCase("Y"));





    double seconds = transferTime(totesSize, totesSpeed);
    double minutes = seconds / 60;
    double realsec = seconds % 60;

    JOptionPane.showMessageDialog(null, "You will be paying: " + totesPrice + "\nRequired Storage is: " + totesSize + "Required time for transfer is: " + wholeDigits.format(minutes) + " minutes, and " + wholeDigits.format(realsec) + " seconds.");

  }

  public static double transferTime(double totalStorage, double netSpeed) {
    double bits, seconds;
    bits = (totalStorage * 8);
    seconds = (bits / netSpeed);
    return seconds;
    };
}
EN

回答 3

Stack Overflow用户

发布于 2012-04-30 15:07:38

我想你有你的泛型..for:each

你可以试试这个。

代码语言:javascript
复制
    for (DigitalPhoto digitalPhoto : photoes) {
        totesPrice += digitalPhoto.getCost();
        totesSize += digitalPhoto.getMegabytes();
        totesSpeed = digitalPhoto.getSpeed();
     }
票数 3
EN

Stack Overflow用户

发布于 2012-04-30 15:05:14

代码语言:javascript
复制
for(zed = 0; zed<photoes.size(); zed++) 
{
   totesPrice += photoes.get(zed).getCost();
   totesSize += photoes.get(zed).getMegabytes();
   totesSpeed = photoes.get(zed).getSpeed();
}

尝尝这个。

票数 0
EN

Stack Overflow用户

发布于 2012-04-30 16:38:14

你可以使用迭代器来代替:

代码语言:javascript
复制
  Iterator it = photoes.iterator();
  while(it.hasNext())
  {
    DigitalPhoto temp = it.next();
    totesPrice += temp.getCost();
    totesSize += temp.getMegabytes();
    totesSpeed = temp.getSpeed();
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10379685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档