Java - 如何遍历对象arraylist并将满足特定条件的元素添加到另一个对象arraylist

时间:2017-10-26 23:45:04

标签: java arraylist iterator listiterator

我有一个UserGroup类,它有一个ArrayList userList。我创建了一个名为' myUserGroup'的类的第一个实例。并填写10个元素然后我做第二个叫“管理员”#39;我想遍历' myUserGroup' arraylist如果元素等于" admin"将其添加到'管理员'数组列表。

这是UserGroup类:

public class UserGroup {

    ArrayList<User> userList;

    UserGroup(){
        userList = new ArrayList<User>();

    public Iterator<User> getUserIterator() {
        Iterator<User> iterate = userList.iterator();
        return iterate;
    }

这是我试图将元素添加到第二个UserGroup arraylist的类:

public class Main {

public static void main(String[] args) {

    UserGroup myUserGroup = new UserGroup();

    myUserGroup.addSampleData();

    UserGroup administrators = new UserGroup();

    while(myUserGroup.getUserIterator().hasNext()) {

        if(myUserGroup.getUserIterator().next().getUserType().equals("admin")) {

            administrators.userList.add(myUserGroup.getUserIterator().next());
        }
    }

1 个答案:

答案 0 :(得分:1)

一些问题:

  1. 我认为你在每个循环上都得到了一个新的迭代器。
  2. 你打电话 当你打算获得相同的对象时,next()两次,得到两个 后续的对象。
  3. 尝试使用此而不是while循环:

    for (User u : myUserGroup.userList) {
      if (u.getUserType().equals("admin")) {
        administrators.userList.add(u);
      }
    }