我已经搜索了很多,并检查了作为可能答案提供的帖子,似乎没有人给我一个答案.
我有这个arraylist,我存储在线用户.我可以从用户列表中读取并添加到它.问题是,我似乎无法找到我如何删除它.
我试过了
online.remove("MyUsername");
Run Code Online (Sandbox Code Playgroud)
我的班级和初始化者是这样的:
ArrayList<userOnline> online = new ArrayList<userOnline>();
class userOnline {
String userName;
String data1;
String data2;
String data3;
}
Run Code Online (Sandbox Code Playgroud)
我以为它会找到带有用户名的对象行并删除该行,或至少删除用户名,但它没有删除任何内容并且没有给我任何错误.
我能做些什么才能让它发挥作用?或者,如果不可能,我可以使用什么作为替代方案?指向文档解释的指针将是足够的帮助!
谢谢!
似乎解决方案是这样的,但这不被认为是好的做法
for (int i=0; i <online.size(); i++) {
if(online.get(i).userName.equals("username")) {
online.remove(i);
}
}
Run Code Online (Sandbox Code Playgroud)
经过讨论和大量反馈似乎是java处理此搜索和删除的唯一正确方法,
Iterator<userOnline> it = online.iterator();
while (it.hasNext()) {
userOnline user = it.next();
if (currentLogin.equals(user.userName)) {
it.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到傻瓜或合适的文档,所以这里是:
使用Iterator:
for (Iterator<userOnline> iterator = online.iterator(); iterator.hasNext();) {
if (iterator.next().getName().equals("MyUsername")) {
iterator.remove();
}
}
Run Code Online (Sandbox Code Playgroud)