我有成员类的简单ArrayLists:
ArrayList<Member> mGroupMembers = new ArrayList<>();
ArrayList<Member> mFriends = new ArrayList<>();
会员等级:
public class Member {
private String userUID;
private String userName;
public String getUserUID() {
return userUID;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setUserUID(String userUID) {
this.userUID = userUID;
}
}
朋友的ArrayList包含所有用户朋友。我只希望从好友列表中删除组成员(如果存在):
mFriends.removeAll(mGroupMembers);
但这对mFriends
列表没有任何帮助…
查看日志语句,该朋友实际上确实出现在mGroupMember
列表中。
为什么不起作用?
如何确定2个成员相等?我猜它们是否具有相同的ID,您认为它们相等,但是Java希望它们成为内存中的完全相同的引用,而事实并非如此。要更正此问题,您可以重写equals
函数以使它们在ID相等时返回:
public class Member {
//..
@Override
public boolean equals(Object anObject) {
if (!(anObject instanceof Member)) {
return false;
}
Member otherMember = (Member)anObject;
return otherMember.getUserUID().equals(getUserUID());
}
}
另外,当您覆盖时.equals
,建议也覆盖hashCode
,以使对象在诸如Set
或的哈希函数中也能正常工作Map
。
我有以下型号: 当我运行下面的查询时,用户模型也被删除 有没有办法在不删除用户的情况下删除问题? 我试着重复这些问题但没有用 我认为查询集是懒惰的,所以也许我需要在删除之前评估它,所以我打印了它,但这不起作用。 我知道,将ForeignKey设置为null将为我提供诸如clear和remove之类的方法,但我不想这样做,因为我不希望出现任何孤立的用户问题。 我更新了ForeignKey,如下所示
当执行进入非Reps.remove行时,删除不是删除指定索引处的对象。为什么? 此解决方案打印:[a, b, c, d, e, f]当它应该是b, d, f时
问题内容: 这是使用for每个循环从Java中的LinkedList中查找和删除项目的有效方法,是否可能会导致不一致: 问题答案: 其他人提到有效点,通常这不是您如何从集合中获取对象。但是,在这种情况下,因为您一旦退出循环就可以了。 但是,如果要在之后继续迭代,则需要使用迭代器。否则,您将获得,或更普遍的情况是未定义的行为。 所以,是的, 如果您不在别人之后,您会没事的。 对于那些说这将失败的人来
我正在这里学习“带有链接实体生命周期的双向多对多”教程https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/hibernate_user_guide.html#associations-many-to-many。但是,我使用的是Spring JPA而不是实体管理器。当我使用repository接口删除一个地址时,这并不是不删除
问题内容: 我知道这是一个杂乱的实现,但是我基本上有这段代码(我全部写了),使用适当的菜单选项时,我需要能够从列表中删除一名学生或教师。代码中的所有其他内容都起作用,但菜单选项3和4无效。我尝试删除该对象时输入的是完全相同的信息。这是代码。这三个类别都在下面。 驱动类别: 学生班: 讲师课程: 问题答案: 您必须正确覆盖和类的方法。 覆盖等于时,也应覆盖。新学生(姓名,ID,GPA); 例如,如下
type String - password。 origin String(可选) - 当提供时,与原始相关的认证信息将被删除,否则整个缓存会被清除。 scheme String(可选) - 认证方案。可选 basic, digest, ntlm, negotiate。如果通过 origin删除,必须提供。 realm String(可选) - 认证的领域。如果通过 origin删除,必须提供。