2017-02-17 13 views
0

私はJavaの初心者です(私の悪い英語を許してください)(名前、スコア)を持つ学生オブジェクトを比較したいと思います。最高得点の学生名を返す。 私は学生クラスにgetScoreとgetNameを持っています。 80.あなたの第1の質問についてはjavaは異なるオブジェクトの属性を比較します

public ArraryList<student>goodStudent<int level> { 
    int level = 80; 
    for(Student student: this.student) { 
    if(student.getScore > 80) { 
    (don't know how to do here >.<) 

    return list; 
} 
+0

あなたは最高のスコアをしたい場合は、あなたがもし(student.getScore()>スコア) 'チェックする必要があります{'ない '<' – alfasin

+0

秒として、あなたは空のリストを作成して追加する必要があります与えられたレベルからレベル>以上の生徒には、 – alfasin

答えて

3
public String tallest() { 
    return Collections.max(students, 
      Comparator.comparingInt(Student::getScore)).getName(); 
} 

public List<Student> goodStudent(int level) { 
    return student.stream() 
      .filter(s -> s.getScore() > level) 
      .collect(Collectors.toList()); 
} 
0

の上にある別の質問は(名前、スコア)で、すべての生徒のオブジェクトを返す方法についてです

public String tallest() { 

    //set a defaut value 
    int score = 0; 
    for(Student student: this.student) { 
     // compare which student has highest score 
     if(student.getScore() < score) { 
      score = student.getScore(); 
      String name = ((String)student.getName()); 
     } 
    } 
    return name; 
} 

、あなたは、java Comparatorを使用することができ、構築ScoreComparatorであり、そのスコアに基づいてStudentを比較します。そして、あなたがあなたのリストstudentsを繰り返す、別のArrayListのインスタンスを作成することができ、Collections.sort(students, new ScoreComprator())ソートリストを使用して、それから、最高のスコアを取得することができます第二の問題については

(あなたが順序昇順またはdecresing中かどうかを並べ替える方法によって異なります)、 student.getScore() > 80の場合は、新しい作成リストに追加します。

+0

OPは「学生のオブジェクトを比較する」と言っていますが、実際にはそれらを比較するのではなく、スコアの基準でそれらを「フィルタリング」しようとします – alfasin

0

このヘルプが必要です。質問は自由にお願いします。

import java.util.ArrayList; 

class Student{ 
    private String name; 
    private int score; 

    public Student(String name, int score){ 
     this.name = name; 
     this.score = score; 
    } 

    public int getScore() { 
     return score; 
    } 

    public void setScore(int score) { 
     this.score = score; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

public class Test{ 

    public static void main(String[] argv) throws Exception { 
    Student[] students = {new Student("Jhon", 78), new Student("Kevin", 90), new Student("Max", 100)}; 

    Student maxScore = GetMaxScore(students); 
    System.out.println("Max Score:"); 
    System.out.println(maxScore.getScore()); 

    ArrayList<Student> studentsOverVal = GetScoreOverVal(students, 80); 
    System.out.println("Students with score over 80: "); 
    for(Student student: studentsOverVal) { 
     System.out.println(student.getName()); 
     } 

    } 

    private static Student GetMaxScore(Student[] students) { 
    Student max = students[0]; 
    for(Student student: students) { 
     if(student.getScore() > max.getScore()) 
      max = student; 

     } 
    return max; 
    } 

    private static ArrayList<Student> GetScoreOverVal(Student[] students, int val) { 
    ArrayList<Student> overVal = new ArrayList<>(); 
    for(Student student: students) { 
     if(student.getScore() >= val) 
      overVal.add(student); 
     } 
    return overVal; 
    } 

}

関連する問題