我正在尝试将用户添加到模型中。
我想添加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);
答案 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());
}