我已经获得了我尝试使用的相当大比例的二维数据,每个数据都有一个(x, y)
坐标,然后找到一组数据在那个坐标上。用于Java中的HashMap的二维可迭代键
我现在正在做的只是使用一个HashMap
来循环,通过检查坐标的方法知道什么时候进入下一个'line'(所以如果数据是[0-10]为x
然后它测试11(和倍数)计算在哪里显示一条新线)。这相当麻烦,我希望有一个更简单的解决方案,但我还没有能够找到一个适合Google或SO的。
我想要做的东西以下伪码: 的HashMap thisMap =(键= IntArray [] [],值= IntArray []) 我在哪里可以设置一个特定的2-d int数组作为整个事物的关键,然后通过一个循环来分配值(并且容易获得值),这是一种可迭代的方式。我能想到的最接近的东西是PHP
如何处理多维数组,以及foreach()
,您可以在其中嵌套foreach()
循环,但我不确定这在Java中如何工作。
目标是最终能够写出两个方法,一个将沿着(第一位)迭代,然后进入下一行;另一个将它视为“帧”并遍历Y-axis
。我不想让任何人为我写这些,甚至是HashMap代码,但我希望能够指出正确的方向,如何做到这一点(如果可能的话),只需要Java SE中提供的标准库而不是压倒一切。如果没有,那么希望能够指导如何安全地重载。
注意
这里的另一个问题是,这组数据是相当大的,和我最初试图做的是我自己写的Tuple class
,但我第一次使用它,我跑出来的堆内存,这就是为什么我试图坚持一个单一的2-d基本诠释数组为此。
编辑
我发现这些: Java usage of HashMap or Map with multidimensional arrays
Java HashMap associative multi dimensional array can not create or add elements
How to implement a Map with multiple keys?
但他们似乎没有要试图实现同样的事情。
EDIT 2
另一个复杂的是,在Y-axis
键是不连续的,虽然他们是有序的从低到高。