可以在C++中更改存储在集合中的对象的非关键部分.如何在java中进行类似操作

Can change non key part of object stored in set in C++.How to do similar in java?

本文关键字:java 操作 对象 C++ 存储 集合 非关键部      更新时间:2023-10-16

C++

假设我们在一个集合中插入5个对象。每个对象都有一个id和一个名称作为属性。我们可以通过获得我们正在搜索的元素的迭代器

int main()
{
set<Obj*> setObj;
Obj *objA = new Obj(10,"P"); Obj * objB = new Obj(20,"L");
setObj.insert(objA);setObj.insert(objB);
set<Obj*>::iterator it = setObj.find(objA);
if( it > 0 )
it->name = "New name";
}

//希望思路清晰。我基本上可以更改集合中对象的非密钥部分。在这种情况下,obj类的密钥为id

现在在Java中,既然我们还没有设置提供find,那么唯一的方法是循环通过吗?

如果语法不完全正确,请道歉。Havent编译了代码

Java中的集合用于唯一的、不可变的元素。

如果要使可变值与键关联,则应使用Map。BTW Most Set实现只包装一个Map。

Java Set没有搜索方法。它只有contains(Object o)和containAll(Collectiono)方法。您必须迭代集合,因为Java集合是无序列的。这个索引是无稽之谈。