找到GPA最高的学生

时间:2017-09-20 03:42:30

标签: java arraylist

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。

1 个答案:

答案 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);
}