首页 > 编程知识 正文

数组放入list集合,list按某个字段修改

时间:2023-05-04 20:17:25 阅读:23000 作者:3049

很抱歉以前的回答。 我不明白你的问题。 我想我现在明白了。 我想获取List1的所有元素,并在list2.中删除它们的等价物

首先,为了遵循正确的Java命名约定,List1必须是List1,类model必须是model。

其中,有关答案,请阅读方法文档。

从指定元素的列表中删除指定元素的第一个匹配项(如果有)。 如果列表中不包含该元素,则不会更改。 更正式地说,是否要删除具有最小索引I的元素,以使其为(o==null )? get(I )==null:o.equals(get ) I ) ) )之类的元素,如果此列表包含指定的元素,则返回true。(或者,调用将更改此列表

这意味着,例如,对于至少本APP应用程序,object4.equals(object1)将仅从list2中移除。 为了确保这一点,必须将其命名为model类的. equals )方法(Model -)。

公共类模型{

私有字符串城市,名称,salary,状态;

//settersandgetters

@Override

公共int hashcode (

intresult=(city!=null? city.hashCode () : 0);

结果=31 *结果(name!=null? name.hashCode () : 0);

结果=31 *结果(上班族!=null? salary.hashCode () : 0);

结果=31 *结果(state!=null? state.hashCode () : 0);

返回结果;

}

@Override

publicbooleanequals (对象) {

if (! (模型实例)

返回假;

模型o模型=(模型) o;

if(omodel.getcity ().equals () city ) )。

oModel.getName ().equals () ) name ) )。

oModel.getSalary ().equals () Salary ) )。

oModel.getState ().equals ) (state ) )

返回真;

返回假;

}

}

此复盖方法允许. remove (和. removeAll )从指定列表中删除对象o或对象集合(列表contains(o ) o ) )或要删除的集合中的每个

for (模型:列表1 ) {

list2.remove(m;

}

或者,更优雅的方法:

list2.移除全部(list 1;

重申一下,如果使用. contains(o(o )列表)或. removeAll, contains ) (c.get ) ) in a common iteration。

然后,仅当. equals(o ) o返回true的对象位于指定列表中时, contains (objecto )才通知返回true,如方法的文档所示

如果此列表包含指定的元素,则返回true。 更正式地说,是否仅在此列表至少包含一个元素e时返回true(o==null )? e==null:o.equals(e ) )

为此,必须在Model类中定义(覆盖).equals。

EDIT:

正如Vladimir Vagaytsev警告我的那样,每当覆盖equals时,重写hashCode就很重要,以确保hashCode也是与对象的散列集合相关联的值的衍生物。我在上面的源代码中提到

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。