2017-09-20 13 views
0
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を持つ生徒をどのようにプリントアウトすることができるのか不思議でした。これらの線に沿って何かを見てください。GPAが最も高い学生を探してください

/* 
X number: X03524696 
age: 25 
First name: Joe 
Last name: Lin 
GPA: 1.6 
*/ 

現時点では、私は印刷することができましたが、最低のGPAと最高のGPAしか印刷できませんでした。

+0

これは 'fname'と' lname'にあります。どうしたの? – shmosel

+0

なぜハッシュマップやトリマップを使用しないのですか? – bigbounty

+0

生徒のすべてのデータをオブジェクトにラップします。リストに入れて、GPAでこのリストをソートし、最初と最後をタックしてプリントする –

答えて

1

これは問題を解決する最善の方法ではありませんが、コードを指定して問題の説明に合わせて大幅に変更しないと、最小GPAと最大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); 
} 
関連する問題