I am beginner about Java and I need help. I just want to get values from text file, then compare the values with an Object's variable. But somehow, it works in a wrong way. I spent more than 4-5 hours an I got stuck in. Here is my code.
private List<Course> hs = new ArrayList<>();
private List<String> list = new ArrayList<>();
private String[] properties;
public void readLines() {
try (BufferedReader br = Files.newBufferedReader(Paths.get(Instructor.root.toString()), StandardCharsets.UTF_8)) {
list = br.lines().collect(Collectors.toList());
for(int i = 0; i < list.size(); i++) {
properties = list.get(i).split("%");
Course course = new Course(properties[0]);
Undergraduate undergraduate = new Undergraduate(properties[0],properties[1], properties[2], properties[3]);
if(hs.size() != 0 && isObjectInSet(course, hs)) {
getIfObjectInSet(course, hs).setUndergraduates(undergraduate);
}else {
course.setUndergraduates(undergraduate);
hs.add(course);
}}
}catch (IOException e) {
System.err.println(e);
}
//System.out.println(hs.size());
}
public boolean isObjectInSet(Course object, List<Course> hs) {
boolean result = false;
for (int i = 0; i < hs.size(); i++) {
String arrayedCourse = hs.get(i).getCourseID();
String objectsID = object.getCourseID();
if (objectsID.equals(arrayedCourse)) {
result = true;
break;
}
}return result; }
public Course getIfObjectInSet(Course object, List<Course> set) {
Course result = null;
for (int i = 0; i < set.size(); i++) {
if (isObjectInSet(object, set)) {
result = set.get(i);
break;
} }return result;
}}
Here is Course class' variables:
public class Course {
private String courseID;
private ArrayList<Undergraduate> undergraduates = new ArrayList<>();
setUndergraduates in Course Class
public void setUndergraduates(Undergraduate undergraduates) {
ArrayList<Undergraduate> students = this.undergraduates;
students.add(undergraduates);
this.undergraduates = students;
}
And here is text file structure
BIM101%11111111111%Papa%25
Here is debug. Two strings are equal but it tells they are not