Für meine Aufgabe muss ich demonstrieren, einen Benutzer aus einer Array-Liste zu entfernen (fertig) und dann die Array-Liste mit einem Iterator durchlaufen und anstatt einen Benutzer aus der Liste zu entfernen, muss ich nur einen bestimmten Benutzer aus dieser Liste ausgeben. Diese Frage ähnelt meiner anderen Frage zum Entfernen eines Elements, unterscheidet sich aber in der Art und Weise, wie ich durch die Liste iterieren und einen Benutzer ausgeben möchte, anstatt einen Benutzer aus der Liste zu entfernen. Ich habe versucht, eine while-Schleife zu verwenden, die eine if-Anweisung enthält und die .next() -Funktion verwendet, aber dies scheint nicht 1 Benutzer auszugeben, da es immer noch alle Benutzer ausgibt. Ich werde für die Wiedergabe von diesem Teil des Programms den entsprechenden Code teilen:Wie wird ein Element einer Array-Liste ausgegeben?
Hauptklasse (verwendet, um die Methode aufzurufen)
package main;
public class Main{
public static void main(String[] args) {
System.out.println("***********Iteration of administrators***********");
UserGroup2 userGroupObject2 = new UserGroup2();
for (User secondusergroup : userGroupObject2.getUserGroup())
{
userGroupObject2.getUserIterator();
System.out.println(secondusergroup.toString());
}
}
}
}
UserGroup2 Klasse (wo die Array-Liste erstellt wurde)
package main;
import java.util.ArrayList;
import java.util.Iterator;
public class UserGroup2 implements Iterable<UserGroup2> {
ArrayList<User> administrators = new ArrayList<>();
public UserGroup2()
{
addUser(new User("lnb1g16", "Student", "Lee"));
addUser(new User("hpf1g17", "Staff", "Harry"));
addUser(new User("jks1g25", "Student", "Jordon"));
addUser(new User("ohw1237", "Admin", "Oliver"));
addUser(new User("ahs1213", "Student", "Jordon"));
addUser(new User("bdh1285", "Admin", "Bob"));
addUser(new User("tqn1294", "Student", "Taylor"));
}
public void addUser(User inUser)
{
//userGroup.add(new User("LeeB123", "Staff", "Lee"));
administrators.add(inUser);
}
public ArrayList<User> getUserGroup() {
return administrators;
}
public void getUserIterator() {
Iterator<User> it2 = administrators.iterator();
while (it2.hasNext()) {
User xxx = it2.next();
if (xxx.getUsername().equals("jks1g25")) {
it2.next();
}
}
}
}
Benutzerklasse (Details für Benutzer)
Ich habe versucht, online zu suchen, wie man dies tut, aber ich kann nicht scheinen, eine Quelle zu finden, die angibt, wie man ein Element der Array-Liste ausgibt, dies kann anderen helfen, die auf dem gleichen Problem feststecken könnten Hilfe wird geschätzt, danke.
Anstatt 'it2.next()' innerhalb des 'if', können Sie' System.out.println (xxx); '? – 4castle
werfen Sie einen Blick auf die ArrayList-Dokumentation: https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html # get (int) – giZm0
Ich habe es so, dass es die 6. Iteration der Liste bekommt, aber es scheint, diese Iteration für jedes Mal auszudrucken, wenn es durchgeht Die Array-Liste und es wird die Array-Liste für jeden Benutzer durchlaufen, so dass diese Iteration für jeden Benutzer im Programm gedruckt wird. Kann jemand das beheben, so dass es nur einmal ausgedruckt wird? – John123