Reputation: 3
I am trying to add users to a model.
I want to add all the users that are in MembersArray
but not in membersAvailableArray
.
membersAvailableArray = all members in the class.
MembersArray = all members
Im trying to get all members that are in MembersArray
but not 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);
Upvotes: 0
Views: 56
Reputation: 4129
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.
If you happen to have Java 8, there is an even simpler way to do this:
members.stream()
.filter(p->!availableMembers.contains(p))
.forEach(p->model2.addElement(p));
Upvotes: 1
Reputation: 4066
try this tricky way, add all to an ArrayList
and remove those you do not want
ArrayList<Member> tmp = new ArrayList<Member>();
tmp.addAll(MembersArray);
tmp.removeAll(membersAvailableArray);
for(Member allMems: tmp){
model2.addElement(allMems.getFirstName() + " " + allMems.getLastName());
}
Upvotes: 0