【发布时间】:2013-11-22 08:59:17
【问题描述】:
我正在使用 blueJ 来编写这个。我想要做的是将一个名为getUserIterator() 的方法添加到UserGroup,即returns an Iterator 来自ArrayList,并使用我的方法返回的Iterator 循环遍历现有用户并添加其@987654326 的任何用户@ 是 "admin" 到管理员组。我不知道该怎么做!!我的代码如下:
用户类别:
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){
Iterator<User> itr = people.iterator();
while (itr.hasNext()){
User element = (User) itr.next();
if (element.getUsername().equals(username)){
itr.remove();
}
}
}
}
主类:
package user;
public class Main{
public static void main(String[] args){
UserGroup grp = new UserGroup();
grp.addSampleData();
grp.printUsernames();
}
public static void admins(){
UserGroup administrators - new UserGroup();
}
}
【问题讨论】:
-
这段代码有什么问题?什么不工作,或者缺少什么?
-
我在任何地方都看不到您的
getUserIterator()方法。 -
您已经针对 remove() 方法提出了一个问题,并且没有尝试自己编写代码。我们不会为你做所有的功课。尝试一些东西。阅读文档。如果您遇到困难,请发布您尝试过的内容并解释无效的内容。
-
我建议您覆盖
equals和hashCode并在List上使用remove()方法,而不是自己滚动...