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

标签 java arrays

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

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

最佳答案

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

        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);

关于java - 需要使用循环打印出ArrayList中的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49106378/

相关文章:

C++:数组的构造函数/初始化器?

java - 为什么 firebase 用户 token 会发生变化?

java - 连接 Bean 的好处

java - JPA/Hibernate如何映射代表 "application properties"的bean

java - java 是否提供使用蓝牙进行笔记本电脑连接的 API

java.lang.nullpointerException?

java - 计算非常大阶乘的数字的有效方法

node.js - 更新数组中的对象或使用唯一字段插入数组

php - 查找数组中的重复值,该数组创建一个新数组,其中键作为重复键,值作为重复项

php - 试图在 php 数组中获取非对象的属性