Java获取不在arraylist中的元素

时间:2014-04-03 16:19:42

标签: java arraylist

我正在尝试将用户添加到模型中。 我想添加MembersArray但不在membersAvailableArray中的所有用户。

  

membersAvailableArray =班上的所有成员   MembersArray =所有成员

我试图让所有成员都在MembersArray而不是membersAvailableArray

DefaultListModel<String> model2 = new DefaultListModel<>();

       for(Member allMems: MembersArray)
       {
             for(Member mems: membersAvailableArray)
             {

                 if(!allMems.getUsername().equals(mems.getUsername()))
                 {
                     model2.addElement(allMems.getFirstName() + " " + allMems.getLastName());
                 }


             }
       }
       availableMembersJList.setModel(model2);

2 个答案:

答案 0 :(得分:1)

这里不需要任何循环,只需要一些旧的“全部”操作:

ArrayList<Member> membersToAdd = members.clone();
membersToAdd.removeAll(availableMembers);

membersToAdd现在拥有您需要添加的所有成员。


如果您碰巧使用Java 8,则可以采用更简单的方法:

members.stream()
        .filter(p->!availableMembers.contains(p))
        .forEach(p->model2.addElement(p));

答案 1 :(得分:0)

尝试这种棘手的方法,将所有内容添加到ArrayList并删除您不想要的内容

ArrayList<Member> tmp = new ArrayList<Member>();
tmp.addAll(MembersArray);
tmp.removeAll(membersAvailableArray);
for(Member allMems: tmp){
    model2.addElement(allMems.getFirstName() + " " + allMems.getLastName());
}