I have this code for reading Twitter users from a text file represented by integers in the format "int (space) int", where the first int
is the ID of
the user doing the following and the second int
is the user being followed. It works for small files but takes a really long time with larger files. What can I do to make it more efficient?
users
is an ArrayList
public void open() {
try {
if (file.exists()) {
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
String[] strings;
while ((line = bufferedReader.readLine()) != null) {
strings = line.split(" ");
String user1 = strings[0];
String user2 = strings[1];
if (!users.toString().contains(user1)) {
TwitterUser tUser1 = new TwitterUser(
Integer.parseInt(user1));
users.add(tUser1);
TwitterUser tUser2 = new TwitterUser(
Integer.parseInt(user2));
tUser1.follow(tUser2);
} else {
TwitterUser target = null;
for (TwitterUser i : users)
if (i.toString().equals(user1))
target = i;
TwitterUser tUser3 = new TwitterUser(
Integer.parseInt(user2));
target.follow(tUser3);
}
}
fileReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
users
. \$\endgroup\$