我决定做服务器端排序。我有一个带对象的HashMap(键是一个String,值是一个ItemDTO)。这些是在服务器启动时静态加载的。
对于每个具有大量项目的角色(CharacterDTO)(在本例中为ItemOnCharacterDTO),我需要能够对东西进行排序。所以我的客户端发送一个排序对象的请求以及一些过滤数据。我现在想做的是:
我现在的问题是:在将ItemDTO添加到列表之前是否需要复制ItemDTO才能不干扰同时进行的多次排序?
我确实在新创建的ItemDTO列表中更改了ItemDTO的顺序(上面的步骤2),但是我没有更改ItemDTO本身(因此它们是静态的,并且在我开头提到的HashMap中)。
提前感谢您的帮助!
答案 0 :(得分:2)
您只需要复制单个对象(如果它们是可变的),即如果它们可能以影响排序顺序或过滤的方式进行更改。在Java中,对象数组实际上是对堆上对象的引用数组,因此移动数组中的引用对底层对象没有影响。