需要使用循环打印出ArrayList中的总数

问题描述 投票:1回答:2

只是想弄清楚如何打印出来看起来像这样:

The total team points is 2232.00 
The two point percent is 41.13
The three point percent is 32.06
The foul shot percent is 66.86

而不是我现在拥有的东西,它不断地通过循环并通过团队单独打印而不是将它们全部加在一起。像这样:

The total team points is: 516.0
The two point percent is: 0.46783626
The three point percent is: 0.26865673
The foul shot percent is: 0.625
The total team points is: 590.0
The two point percent is: 0.38135594
The three point percent is: 0.3037037
The foul shot percent is: 0.7579618
The total team points is: 408.0
The two point percent is: 0.43459916
etc...

这是代码:

for (int i = 0; i < team.size(); i++) {
    float points = (float) (2 * (team.get(i).getmade1() + team.get(i).getmade2() + team.get(i).getmade3()));
    float twopercent = (float) (team.get(i).gettwoPercent());
    float threepercent = (float) (team.get(i).getthreePercent());
    float foulpercent = (float) (team.get(i).getfoulPercent());
    System.out.println("The total team points is: " + points);
    System.out.println("The two point percent is: " + twopercent);
    System.out.println("The three point percent is: " + threepercent);
    System.out.println("The foul shot percent is: " + foulpercent);
}
outputStream.println(team);

我的其余工作可供参考:

public class fileStreamtest {
    public static void main(String[] args) {
        Scanner inputStream = null;
        PrintWriter outputStream = null;
        ArrayList<BBall> team = new ArrayList<BBall>();
        try {
            inputStream = new Scanner(new FileInputStream("/Users/Gracie/Documents/workspace/Lab7/src/team.txt"));
            outputStream = new PrintWriter(
                    new FileOutputStream("/Users/Gracie/Documents/workspace/Lab7/src/team_stat.txt"));
        } catch (FileNotFoundException e) {
            System.out.println("Problem opening files" + e.toString());
            System.exit(0);
        }
        // Here you declare and initialize the varibales you need in loop
        int num;
        String fname;
        String lname;
        int twoMade;
        int twoAttempt;
        int threeMade;
        int threeAttempt;
        int foulMade;
        int foulAttempt;

        while (inputStream.hasNextLine()) {
            // read variable by variable across the line
            num = inputStream.nextInt();
            lname = inputStream.next();
            fname = inputStream.next();
            twoMade = inputStream.nextInt();
            twoAttempt = inputStream.nextInt();
            threeMade = inputStream.nextInt();
            threeAttempt = inputStream.nextInt();
            foulMade = inputStream.nextInt();
            foulAttempt = inputStream.nextInt();

            // then use all these variables to make a BBallPlayer and add to the arraylist
            BBall player = new BBall(num, fname, lname, twoMade, twoAttempt, threeMade, threeAttempt, foulMade,
                    foulAttempt);
            team.add(player);
        }
        // keep reading a line until there is no more input

        // using a loop go through the arraylist and get the team totals OF THE NUMBER
        // OF POINTS
        // prints out totals et

        for (int i = 0; i < team.size(); i++) {
            float points = (float) (2 * (team.get(i).getmade1() + team.get(i).getmade2() + team.get(i).getmade3()));
            float twopercent = (float) (team.get(i).gettwoPercent());
            float threepercent = (float) (team.get(i).getthreePercent());
            float foulpercent = (float) (team.get(i).getfoulPercent());
            System.out.println("The total team points is: " + points);
            System.out.println("The two point percent is: " + twopercent);
            System.out.println("The three point percent is: " + threepercent);
            System.out.println("The foul shot percent is: " + foulpercent);
        }

        outputStream.println(team);

        inputStream.close();
        outputStream.close();
    }// end method
}// end class

和另一个班级

public class BBall {
    private int number;
    private String lastName;
    private String firstName;
    private int made2;
    private int att2;
    private int made3;
    private int att3;
    private int made1;
    private int att1;

    public BBall(int n, String lN, String fN, int m2, int a2, int m3, int a3, int m1, int a1) {
        number = n;
        lastName = lN;
        firstName = fN;
        made2 = m2;
        att2 = a2;
        made3 = m3;
        att3 = a3;
        made1 = m1;
        att1 = a1;

    }

    public int getnumber() {
        return number;
    }

    public String getlastName() {
        return lastName;
    }

    public String getfirstName() {
        return firstName;
    }

    public int getmade2() {
        return made2;
    }

    public int getatt2() {
        return att2;
    }

    public int getmade3() {
        return made3;
    }

    public int getatt3() {
        return att3;
    }

    public int getmade1() {
        return made1;
    }

    public int getatt1() {
        return att1;
    }

    public void setnumber(int n) {
        number = n;
    }

    public void setlastName(String lN) {
        lastName = lN;
    }

    public void setfirstName(String fN) {
        firstName = fN;
    }

    public void setmade2(int m2) {
        made2 = m2;
    }

    public void setatt2(int a2) {
        att2 = a2;
    }

    public void setmade3(int m3) {
        made3 = m3;
    }

    public void setatt3(int a3) {
        att3 = a3;
    }

    public void setmade1(int m1) {
        made1 = m1;
    }

    public void setatt1(int a1) {
        att1 = a1;
    }

    public float gettwoPercent() {
        float twoPercent = (float) made2 / (float) att2;
        return twoPercent;
    }

    public float getthreePercent() {
        float threePercent = (float) made3 / (float) att3;
        return threePercent;
    }

    public float getfoulPercent() {
        float foulPercent = (float) made1 / (float) att1;
        return foulPercent;
    }

    public String toString() {
        return " " + firstName + " " + lastName + " \n Two point percent: " + gettwoPercent()
                + " \n Three point percent: " + getthreePercent() + "\n Foul shot percent: " + getfoulPercent();
    }

}// end class

文本文件:

25 DEMERY James 160 342 18 67 80 128
1 NEWKIRK Shavar 135 354 41 135 119 157
33 FUNK Taylor 103 237 70 173 31 37
0  KIMBLE Lamarr 4 11 2 4 0 1
15 CLOVER Chris 81 207 26 80 22 43
24 OLIVA Pierfrancesc 56 121 12 45 31 64
5 ROBINSON Nick 46 115 6 31 42 55
12 LONGPRE Anthony 34 111 18 56 10 16
22 EDWARDS Lorenzo 10 39 7 32 4 5
10 BLOUNT Gerald 2 2 0 0 0 0
32 WILLIAMS Jai 5 10 0 0 3 5
23 LODGE Markell 5 6 0 0 1 3
3 BOOTH Michael 1 2 1 2 0 0
21 THOMPSON Kyle 0 1 0 0 2 2
11 FREEMAN Toliver 0 2 0 2 0 0
13 VEGA Christian 0 1 0 0 0 0
java arrays
2个回答
2
投票

您应该在打印结果之前计算总和:

        float points = 0 ;
        float twopercent = 0 ;
        float threepercent = 0 ;
        float foulpercent = 0 ;

        for (int i = 0; i<team.size(); i++){
             points = points + (float) (2 * (team.get(i).getmade1() + team.get(i).getmade2() + team.get(i).getmade3()));
             twopercent = twopercent +  (float) (team.get(i).gettwoPercent());
             threepercent = threepercent + (float) (team.get(i).getthreePercent());
             foulpercent = foulpercent + (float) (team.get(i).getfoulPercent());

        }

        System.out.println("The total team points is: " + points );
        System.out.println("The two point percent is: " + twopercent);
        System.out.println("The three point percent is: " + threepercent);
        System.out.println("The foul shot percent is: " + foulpercent);

0
投票

虽然Azzabi Haythem的答案是正确的,但计算本身并非如此。

我先得到所有队伍的所有积分,然后计算百分比。

float points = 0 ;

// foul
int made1 = 0 ;
int att1 = 0;

// two points
int made2 = 0 ;
int att2 = 0;

// three points
int made3 = 0 ;
int att3 = 0;

for (int i = 0; i<team.size(); i++){
    points = points + (float) (2 * (team.get(i).getmade1() + team.get(i).getmade2() + team.get(i).getmade3()));

    // foul
    made1 = made1 + team.get(i).getmade1(i);
    att1 = att1 + team.get(i).getAtt1(i);

    // two points
    made2 = made2 + team.get(i).getmade2(i);
    att2 = att2 + team.get(i).getAtt2(i);

    // three points
    made3 = made3 + team.get(i).getmade3(i);
    att3 = att3 + team.get(i).getAtt3(i);
}


float foulPercent = (float) made1 / (float) att1;
float twoPercent = (float) made2 / (float) att2;
float threePercent = (float) made3 / (float) att3;

System.out.println("The total team points is: " + points );
System.out.println("The two point percent is: " + twoPercent);
System.out.println("The three point percent is: " + threePercent);
System.out.println("The foul shot percent is: " + foulPercent);
© www.soinside.com 2019 - 2024. All rights reserved.