gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:14:13 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com