hi
ich möchte user verwalten, dazu bekomme ich regelmäßig eine csv liste mit den usern. diese liste will ich mit der existierenden liste vergleichen(im ldap server hinter einem dao) und die user hinzufügen, die nicht im ldap vorhanden sind und die user löschen, die nicht in der liste vorhanden sind. das funktioniert auch schon, bei ca. 1500 usern aber ziemlich langsam.
ich wandele zunächst die csv liste in eine arrayList mit hashMaps drin um und bekomme vom dao etwas ähnliches. der haken ist das vergleichen: ich iteriere erst die eine liste, und darin dann die zweite liste, weil das vergleichen(wegen fehlenden primärkeys aufwändiger ist):
leider habe ich keine idee wie man das optimieren könnte
mfg jdsalchow
ich möchte user verwalten, dazu bekomme ich regelmäßig eine csv liste mit den usern. diese liste will ich mit der existierenden liste vergleichen(im ldap server hinter einem dao) und die user hinzufügen, die nicht im ldap vorhanden sind und die user löschen, die nicht in der liste vorhanden sind. das funktioniert auch schon, bei ca. 1500 usern aber ziemlich langsam.
ich wandele zunächst die csv liste in eine arrayList mit hashMaps drin um und bekomme vom dao etwas ähnliches. der haken ist das vergleichen: ich iteriere erst die eine liste, und darin dann die zweite liste, weil das vergleichen(wegen fehlenden primärkeys aufwändiger ist):
Code:
for (DTO existingUser : existingUserList) {
for (HashMap user : newUserList) {
// if user is already existant, remove dto from both ArrayLists
if (existingUser.get("surname").equals(user.get("surname"))
&& existingUser.get("birthDate").equals(
user.get("birthDate"))
&& existingUser.get("acceptanceDate").equals(
user.get("acceptanceDate"))) {
log.debug("found equal user: " + user);
//add is a clone of newUserList
add.remove(user);
//delete is a clone of existingUserList
delete.remove(existingUser);
break;
}
}
}
leider habe ich keine idee wie man das optimieren könnte
mfg jdsalchow