可以在C++中更改存储在集合中的对象的非关键部分.如何在java中进行类似操作
Can change non key part of object stored in set in C++.How to do similar in java?
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集合是无序列的。这个索引是无稽之谈。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 在java中解决这段代码时面临循环中的问题
- 尝试用java代码编译和运行c++代码
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 来自 Java 的 OpenCV 中的逻辑操作
- 可以在C++中更改存储在集合中的对象的非关键部分.如何在java中进行类似操作
- C++中是否有类似于 Java 的 CompareTo 方法,您可以在其中对数据类型使用 > < = 操作
- Java 中的按位异或操作
- 为什么这个 Java 代码不做与此C++代码相同的操作?(基本操作;C++输出正确)
- 与c相比,java中的位操作
- Java字节设置操作中的字节出现符号(+/-)错误
- Java 中的高效位操作
- 用c++ (ATL, MFC或纯c++)处理COM事件,实现Java互操作