[英]Java get elements that are not in an arraylist
I am trying to add users to a model. 我正在尝试将用户添加到模型中。 I want to add all the users that are in
MembersArray
but not in membersAvailableArray
. 我想补充凡在用户
MembersArray
但不是在membersAvailableArray
。
membersAvailableArray = all members in the class.
MembersAvailableArray =该类中的所有成员。
MembersArray = all membersMembersArray =所有成员
Im trying to get all members that are in MembersArray
but not 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);
You do not need any looping here, just some good old "All" operations: 您无需在此处进行任何循环,只需执行一些不错的旧“全部”操作即可:
ArrayList<Member> membersToAdd = members.clone();
membersToAdd.removeAll(availableMembers);
membersToAdd
now has all the members you need to add. 现在,
membersToAdd
具有您需要添加的所有成员。
If you happen to have Java 8, there is an even simpler way to do this: 如果您碰巧拥有Java 8,则有一种更简单的方法可以做到这一点:
members.stream()
.filter(p->!availableMembers.contains(p))
.forEach(p->model2.addElement(p));
try this tricky way, add all to an ArrayList
and remove those you do not want 尝试这种棘手的方法,将所有内容添加到
ArrayList
然后删除不需要的内容
ArrayList<Member> tmp = new ArrayList<Member>();
tmp.addAll(MembersArray);
tmp.removeAll(membersAvailableArray);
for(Member allMems: tmp){
model2.addElement(allMems.getFirstName() + " " + allMems.getLastName());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.