Вы можете объединить их обоих следующим образом с помощью Predicate<User>
public User getUser(Predicate<User> predicate){
for (User u : listOfLoggedInUsers)
if (predicate.test(u)) return u;
return null;
}
, затем вызвать его как:
getUser(u -> u.getUserId() == userID)
getUser(u -> u.getUsername().equals(username))
...
...
Чтобы сделать этолучше и удобочитаемее вы можете сделать getUser
private User getUser(Predicate<User> predicate){
for (User u : listOfLoggedInUsers)
if (predicate.test(u)) return u;
return null;
}
, а затем выставить два открытых метода
public User getUserById(int userID) { return getUser(u -> u.getUserId() == userID); }
public User getUserByName(String name) { return getUser(u -> u.getUsername().equals(name)); }