import java.util.ArrayList;
import java.util.List;
public class SjuStudent {
public static void main (String[] args) {
ArrayList<String> Xnumber = new ArrayList<String>();
Xnumber.add("X03024327");
Xnumber.add("X03124586");
Xnumber.add("X03324556");
Xnumber.add("X03424496");
Xnumber.add("X03524696");
ArrayList<Integer> age = new ArrayList<Integer>();
age.add(21);
age.add(19);
age.add(18);
age.add(22);
age.add(25);
ArrayList<String> fname = new ArrayList<String>();
fname.add("Wei");
fname.add("Frank");
fname.add("Dave");
fname.add("John");
fname.add("Joe");
ArrayList<String> lname = new ArrayList<String>();
lname.add("Guo");
lname.add("Dave");
lname.add("Ming");
lname.add("Chow");
lname.add("Lin");
ArrayList<Double> GPA = new ArrayList<Double>();
GPA.add(3.60);
GPA.add(3.78);
GPA.add(3.20);
GPA.add(2.60);
GPA.add(1.60);
for(int i=1; i<5; i++) {
System.out.println("X number: " + Xnumber.get(i) + "\n" + "age: " + age.get(i)+"\n"+"First name: " + fname.get(i)+"\n"+"Last name: " + lname.get(i) +"\n"+"GPA: " + GPA.get(i));
System.out.println();
}
Double min = GPA.get(0);
Double max = GPA.get(0);
for(int a=0; a<GPA.size();a++) {
double number = GPA.get(a);
if(number < min) min=number;
if(number > max) max=number;
}
System.out.println("min = " + min );
System.out.println("max = " + max);
}
}
所以我正在制作一份包含5个学生成绩的列表的arraylist。想知道如何打印出GPA最低的学生和GPA最高的学生以及学生信息。沿着这些方向看一下。
/*
X number: X03524696
age: 25
First name: Joe
Last name: Lin
GPA: 1.6
*/
目前,我目前只能打印出来,只有最低的GPA和最高的GPA。
答案 0 :(得分:1)
这不是解决问题的最佳方法,但考虑到代码并且没有大幅改变以满足问题描述,您可以在找到它们时简单地存储最小和最大GPA的索引,并使用此索引访问每个ArrayList。
public static void main (String[] args) {
ArrayList<String> Xnumber = new ArrayList<String>();
Xnumber.add("X03024327");
Xnumber.add("X03124586");
Xnumber.add("X03324556");
Xnumber.add("X03424496");
Xnumber.add("X03524696");
ArrayList<Integer> age = new ArrayList<Integer>();
age.add(21);
age.add(19);
age.add(18);
age.add(22);
age.add(25);
ArrayList<String> fname = new ArrayList<String>();
fname.add("Wei");
fname.add("Frank");
fname.add("Dave");
fname.add("John");
fname.add("Joe");
ArrayList<String> lname = new ArrayList<String>();
lname.add("Guo");
lname.add("Dave");
lname.add("Ming");
lname.add("Chow");
lname.add("Lin");
ArrayList<Double> GPA = new ArrayList<Double>();
GPA.add(3.60);
GPA.add(3.78);
GPA.add(3.20);
GPA.add(2.60);
GPA.add(1.60);
for(int i=1; i<5; i++) {
System.out.println("X number: " + Xnumber.get(i) + "\n" + "age: " + age.get(i)+"\n"+"First name: " + fname.get(i)+"\n"+"Last name: " + lname.get(i) +"\n"+"GPA: " + GPA.get(i));
System.out.println();
}
int minIndex = 0;
int maxIndex = 0;
for(int a=0; a<GPA.size();a++) {
double number = GPA.get(a);
if(number < min){
minIndex = a;
}
if(number > max){
maxIndex = a;
}
}
System.out.println("min = " + min );
System.out.println("max = " + max);
//Get information using minIndex
fname.get(minIndex);
lname.get(minIndex);
age.get(minIndex);
gpa.get(minIndex);
//Repeat with max index
fname.get(maxIndex);
lname.get(maxIndex);
age.get(maxIndex);
gpa.get(maxIndex);
}