私はComparableインターフェースを実装するstudentオブジェクトを持っています。TreeSetは2つ以上の項目(オブジェクト)を追加していません
class Student implements Comparable<Student>{
String rollNo;
double internal;
double external;
Student(String rollNo, double internal, double external){
this.rollNo = rollNo;
this.internal = internal;
this.external = external;
}
public int compareTo(Student otherStudent){
return (this.external < otherStudent.external) ? -1 :
(this.external > otherStudent.external) ? 0 : 1;
}
}
私は、学生のリストからオブジェクトのセットを追加しようとしています。次のように入力リストの抜粋である:
U4CSE11150,25,24.5
U4CSE11167,4,13
U4CSE12502,23,34.5
U4CSE13001,27,44.5
U4CSE13002,26,30
U4CSE13003,44,62.5
U4CSE13005,32,30.5
U4CSE13006,24,31
U4CSE13007,27,41
U4CSE13008,34,47
...
Iは、whileループ内学生オブジェクトを作成TreeSet
students
に追加し、オブジェクトの3番目の値と共にTreeset
のサイズを印刷しています(すなわち外部マーク)。以下はコードです。
while((line = br.readLine()) != null){
String[] elements = line.split(",");
rollNo = elements[0];
internal = Double.parseDouble(elements[1]);
external = Double.parseDouble(elements[2]);
Student s = new Student(rollNo, internal, external);
students.add(s);
System.out.println("Size: " + students.size() + " Mark: "
+ s.external);
}
しかし、プログラムを実行すると、次のような出力が得られます。最初の2つのオブジェクトだけを追加しています。
Size: 1 Mark: 24.5
Size: 2 Mark: 13.0
Size: 2 Mark: 34.5
Size: 2 Mark: 44.5
Size: 2 Mark: 30.0
Size: 2 Mark: 62.5
Size: 2 Mark: 30.5
Size: 2 Mark: 31.0
Size: 2 Mark: 41.0
誰でも私を助けることができますか?前もって感謝します。
あなたは、これはあなたの完全なコードであることを確認している...あなたはここで何かを見逃しているように...また、あなたは完全なTreeSetのを印刷するとき何を得る私たちを見ることができそうですか? – qwerty