Я использую blueJ, чтобы написать это. То, что я пытаюсь сделать, это написать метод, называемый removeUser() в классе userGroup, который принимает String как параметр, который является именем пользователя, которое я хочу удалить. Используя Iterator, перебирайте список до тех пор, пока я не найду пользователя с этим именем пользователя и не удалю его. Мой код:Удаление пользователя из arraylist по имени пользователя
package user;
public class User{
public enum UserType{
ADMIN, EDITOR, USER;
}
private String id;
private UserType userPermissions;
private String actualName;
public User(String username, UserType userType, String name){
id = username;
userPermissions = userType;
actualName= name;
}
public String getUsername(){
return id;
}
public UserType getUserType(){
return userPermissions;
}
public String getName(){
return actualName;
}
public void setUserType(UserType input){
userPermissions = input;
}
}
и класс UserGroup является:
package user;
import java.util.*;
import user.User.UserType;
public class UserGroup{
private ArrayList<User> people;
public UserGroup(){
people = new ArrayList<User>();
}
public void addSampleData(){
people.add(new User("jar1g13", UserType.ADMIN,"Jonny"));
people.add(new User("ao9", UserType.EDITOR,"Aniruddh"));
people.add(new User("pe6", UserType.USER,"Peter"));
people.add(new User("mat73", UserType.USER,"Matthew"));
people.add(new User("ora69", UserType.EDITOR,"Oranthi"));
people.add(new User("ben12", UserType.USER,"Benedict"));
people.add(new User("cam30", UserType.ADMIN,"Cambyse"));
people.add(new User("are20", UserType.USER,"Alex"));
people.add(new User("lim19", UserType.USER,"Liam"));
people.add(new User("ada13", UserType.EDITOR,"Adam"));
}
public User getUser(int idx){
return people.get(idx);
}
public void printUsernames(){
for (User user: people){
System.out.printf("%s %s\n", user.getUsername(), user.getUserType());
}
}
public void removeFirstUser(){
people.remove(0);
}
public void removeLastUser(){
people.remove(people.size()-1);
}
public void removeUser(String username){
people.remove(username);
}
}
Это все компилируется нормально, но когда я запускаю метод RemoveUser это не похоже, чтобы удалить что-либо из массива!
Ответ на вопрос: * Используя Iterator, перебирайте список, пока я не найду пользователя с этим именем пользователя и не удаляю их * , Это не то, что делает код. Он пытается удалить строку из списка пользователей. Делайте то, о чем говорит этот вопрос. И используйте согласованные имена для ваших переменных: id или username, но не оба. actualName или имя, но не оба. Это делает вещи чрезвычайно запутанными. –