Hashmap-Key值应更改为

时间:2016-02-01 19:27:46

标签: java hashmap key

我正在开发一个程序,我可以使用大量数据。 说了很多,我的意思是多达100万个物体。 我的程序工作正常,但我需要实现一个获取任何方法 通过给予任何位置这些对象。 我只是演示它:

e.g。我有1000个立方体(3D空间)。所有这些立方体都被放入 一个HashMap。每个对象的关键是它的位置。 但是当我移动我的对象时,对象的位置会发生变化,但是我的Key不会。 所以我想要的是为Map中的任何Object设置一个Key,它通过改变Object的变量来改变,或者等于我的Object中的一个变量。 那是我的问题。有谁知道如何处理这个问题或有没有人有任何解决方案? 或者Java中还有其他任何可以解决我问题的数据结构吗?

1 个答案:

答案 0 :(得分:0)

您可以使用与数据库的连接。

例如,使用Oracle,您可以创建表

Cubes(id, position, attribute_1, ..., attribute_n)

,并进行操作

select * from cubes order by position;

无论何时,您都可以更新多维数据集的位置。

修改:如果您不想使用数据库

你可以用arraylists来做。

ArrayList<Cube> myCubes = new ArrayList<>();

你可以命令他们用这种方式覆盖方法:

Collections.sort(myCubes, new Comparator()) {
    @Override
    public int compare(Cube c1, Cube c2) {
        return new Integer(c1.getPosition()).compareTo(new Integer(c2.getPosition()));
    }
}