简体   繁体   English

java中的arraylist,将所有数据打印出来

[英]arraylist in java, getting all the data print out

I am learning Java right now and I am trying to use ArrayList in my project, but it doesn't work.我现在正在学习 Java,我正在尝试在我的项目中使用ArrayList ,但它不起作用。 Help please...请帮忙...

public class TestCalculator {
    public static void main(String[]args){

        ArrayList<BMICalculator> bmilist = new ArrayList<>();
        //ArrayList<Double> bmilist = new ArrayList<Double>();
        do {
            double lengte = getLength("Geef de lengte in Meters:");
            double gewicht = getGewicht("Geef het gewicht in Kg:");
            BMICalculator bmi = new BMICalculator(lengte, gewicht);
            bmi.setBmi(bmi.calculateBMI());
            bmilist.add(bmi);

            for(double i = 0;i < bmilist.size(); i++){
                //System.out.println(i);
                JOptionPane.showMessageDialog(null, "List:" + i);

            }

            JOptionPane.showMessageDialog(null, "Bmi: " + String.format("%s", bmi.toString()));

        } while(getUserAnswer() == 'J');

    }

    public static double getLength(String message){
        String lengte = JOptionPane.showInputDialog(message);
        return  Double.parseDouble(lengte);
    }

    public static double getGewicht(String message){
        String gewicht = JOptionPane.showInputDialog(message);
        return  Double.parseDouble(gewicht);
    }


    public static char getUserAnswer(){
        String answer = JOptionPane.showInputDialog("Wil je opnieuw: j/n?");
        return Character.toUpperCase(answer.charAt(0));

    }
}

I cant get anything print out of that list.我无法从该列表中打印任何内容。 Every time someone calculates his BMI, it should put them in an Arraylist and when they click "continue", no... then it should return all the BMI's they calculated.每次有人计算他的 BMI 时,它应该把它们放在一个Arraylist ,当他们点击“继续”时,不......然后它应该返回他们计算的所有 BMI。

You misused a loop with a list structure您误用了具有列表结构的循环

for (int i = 0; i < bmilist.size(); i++) {
     JOptionPane.showMessageDialog(null, "List:" + bmilist.get(i).getBmi());
}

Try the for loop with int variable尝试使用 int 变量的for循环

    do {
            double lengte = getLength("Geef de lengte in Meters:");
            double gewicht = getGewicht("Geef het gewicht in Kg:");
            BMICalculator bmi = new BMICalculator(lengte, gewicht);
            bmi.setBmi(bmi.calculateBMI());
            bmilist.add(bmi);
            // int variable instead of double inside for loop
            for(int i = 0;i < bmilist.size(); i++){
                JOptionPane.showMessageDialog(null, "List:" + bmilist.get(i));
    
            }
    
   }while(getUserAnswer() == 'J');
ArrayList<BMICalculator> bmilist = new ArrayList<>();
        do {
            double lengte = getLength("Geef de lengte in Meters:");
            double gewicht = getGewicht("Geef het gewicht in Kg:");
            BMICalculator bmi = new BMICalculator(lengte, gewicht);
            bmi.setBmi(bmi.calculateBMI());
            bmilist.add(bmi);
            JOptionPane.showMessageDialog(null, String.format("%s", bmi.toString()));
        } while(getUserAnswer() == 'J');

        System.out.println("Lengte    Gewicht   BMI");
        for(int i = 0;i < bmilist.size(); i++)
        {            System.out.printf("%-10s%-10s%s\n",bmilist.get(i).getLengte(),bmilist.get(i).getGewicht(),String.format("%.2f", bmilist.get(i).getBmi()));
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM