/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static class Student {
private final int uwecId;
private double GPA;
public Student
(int uwecId,
String firstName,
String lastName,
double GPA
) { this.uwecId = uwecId;
this.firstName = firstName;
this.lastName = lastName;
this.GPA = GPA;
}
public int getUwecId() {
return uwecId;
}
public String getFirstName
() { return firstName;
}
return lastName;
}
public double getGPA() {
return GPA;
}
}
static class StudentList extends ArrayList<Student>{
@Override
for (Student student : this) {
outputString
+= String.
format("UWECStudent = uwecId: %d, name: %s %s, gpa: %.2f\n",
student.getUwecId(), student.getFirstName(), student.getLastName(), student.getGPA());
}
return outputString;
}
}
Student s1 = new Student(123, "John", "Doe", 3.5);
Student s2 = new Student(456, "Jane", "Doe", 4.0);
StudentList students = new StudentList();
students.add(s1);
students.add(s2);
System.
out.
println(students.
toString()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXN0YXRpYyBjbGFzcyBTdHVkZW50IHsKCQlwcml2YXRlIGZpbmFsIGludCB1d2VjSWQ7CgkJcHJpdmF0ZSBTdHJpbmcgZmlyc3ROYW1lOwoJCXByaXZhdGUgU3RyaW5nIGxhc3ROYW1lOwoJCXByaXZhdGUgZG91YmxlIEdQQTsKCQkKCQlwdWJsaWMgU3R1ZGVudChpbnQgdXdlY0lkLCBTdHJpbmcgZmlyc3ROYW1lLCBTdHJpbmcgbGFzdE5hbWUsIGRvdWJsZSBHUEEpIHsKCQkJdGhpcy51d2VjSWQgPSB1d2VjSWQ7CgkJCXRoaXMuZmlyc3ROYW1lID0gZmlyc3ROYW1lOwoJCQl0aGlzLmxhc3ROYW1lID0gbGFzdE5hbWU7CgkJCXRoaXMuR1BBID0gR1BBOwoJCX0KCQkKCQlwdWJsaWMgaW50IGdldFV3ZWNJZCgpIHsKCQkJcmV0dXJuIHV3ZWNJZDsKCQl9CgkJCgkJcHVibGljIFN0cmluZyBnZXRGaXJzdE5hbWUoKSB7CgkJCXJldHVybiBmaXJzdE5hbWU7CgkJfQoJCQoJCXB1YmxpYyBTdHJpbmcgZ2V0TGFzdE5hbWUoKSB7CgkJCXJldHVybiBsYXN0TmFtZTsKCQl9CgkJCgkJcHVibGljIGRvdWJsZSBnZXRHUEEoKSB7CgkJCXJldHVybiBHUEE7CgkJfQoJfQoJCiAgICBzdGF0aWMgY2xhc3MgU3R1ZGVudExpc3QgZXh0ZW5kcyBBcnJheUxpc3Q8U3R1ZGVudD57CiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgICAgICAJU3RyaW5nIG91dHB1dFN0cmluZyA9ICIiOwogICAgICAgICAgICBmb3IgKFN0dWRlbnQgc3R1ZGVudCA6IHRoaXMpIHsKICAgICAgICAgICAgICAgIG91dHB1dFN0cmluZyArPSBTdHJpbmcuZm9ybWF0KCJVV0VDU3R1ZGVudCA9IHV3ZWNJZDogJWQsIG5hbWU6ICVzICVzLCBncGE6ICUuMmZcbiIsCiAgICAgICAgICAgICAgICAgICAgc3R1ZGVudC5nZXRVd2VjSWQoKSwgc3R1ZGVudC5nZXRGaXJzdE5hbWUoKSwgc3R1ZGVudC5nZXRMYXN0TmFtZSgpLCBzdHVkZW50LmdldEdQQSgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gb3V0cHV0U3RyaW5nOwogICAgICAgIH0gICAgICAgIAogICAgfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewoJCQogICAgICAgIFN0dWRlbnQgczEgPSBuZXcgU3R1ZGVudCgxMjMsICJKb2huIiwgIkRvZSIsIDMuNSk7CiAgICAgICAgU3R1ZGVudCBzMiA9IG5ldyBTdHVkZW50KDQ1NiwgIkphbmUiLCAiRG9lIiwgNC4wKTsKICAgICAgICAKICAgICAgICBTdHVkZW50TGlzdCBzdHVkZW50cyA9IG5ldyBTdHVkZW50TGlzdCgpOwogICAgICAgIHN0dWRlbnRzLmFkZChzMSk7CiAgICAgICAgc3R1ZGVudHMuYWRkKHMyKTsKICAgICAgICAKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3R1ZGVudHMudG9TdHJpbmcoKSk7Cgl9Cn0=