Mooooment!
Dass sich die Liste ändern kann während der Algorithmus läuft war so nicht erwähnt. Und es wäre ein fetter Designfehler. Kann aber auch nur passieren wenn du einen extra Thread hast, der die Liste ändert. Und wenn du so einen Thread hast, leiden beide Algorithmen unter dem gleichen "Problem" dass sie sich nicht auf die Liste verlassen können.
Die beste Lösung wäre wohl, wenn der Server (den du ja ohnehin zu haben scheinst) die Liste verwaltet und an die Clients nur die Liste der Benutzer verschickt (und zwar ohne Duplikate) Wenn dann eine Nachricht verschickt werden soll, werden als Empfänger die Benutzernamen angegeben. Der Server löst die Namen dann auf und schickt die Nachricht an alle Empfänger weiter. Der Server hat also eine Liste die jedem Benutzernamen eine Liste an
IP's zuordnet (etwa so wie in Post #3)