如何删除数组列表中的对象

Kri*_*sen 1 java object

我已经搜索了很多,并检查了作为可能答案提供的帖子,似乎没有人给我一个答案.

我有这个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)

Boh*_*ian 5

我找不到傻瓜或合适的文档,所以这里是:

使用Iterator:

for (Iterator<userOnline> iterator = online.iterator(); iterator.hasNext();) {
    if (iterator.next().getName().equals("MyUsername")) {
        iterator.remove();
    }
}
Run Code Online (Sandbox Code Playgroud)