1

我正在尝试创建一个等于 ((2,1),(2,-1),(1,-2)) 的变量偏移量,通过它我可以迭代并获取每个位置的 X,Y 坐标。

在 python 中,我只会使用列表列表。我以为我也可以用 Java 做到这一点,但是用这种语言做到这一点似乎要困难得多......

我虽然可能 int[] 偏移会起作用,但显然没有骰子。然后,因为它是一个列表列表(不仅仅是一个列表),我尝试了 int[][] offset 并且 eclipse 仍然认为我是个白痴。

我错过了什么?或者我只是让这变得比它需要的更难,实际上你会建议一些非常简单的东西而不是列表?

4

3 回答 3

5

最好的主意是使用Point

Point point = new Point(1,4);
List<Point> points = new ArrayList<Point>();

另一种方法是使用列表列表。不建议。不是面向对象的

 List<List<Integer>>

或者,您可以创建您的 Point 类版本。例如一个内部有一个轴的对象

class AxisX{
 private List<Integer>
}

并将其放入另一个对象中

class Coordinates{
    private List<AxisX>
}
于 2013-09-09T20:58:42.847 回答
0

从这里写的内容来看,您似乎正在尝试使用数组语法访问列表成员。

在java中,集合和数组有完全不同的语法。数组用 [] 索引,列表等集合使用方法。

所以要获得第 j 个列表的第 i 个元素

list.get(j).get(i);

第一个 get 调用返回列表第 i 个索引处的列表 第二个 get 调用返回内部列表的第 j 个元素。

尽管对于这种情况,我将第二次 @Tom_G 并建议使用点对象之类的东西,然后您只需要一个列表,该点处理单个对象中的 x、y 坐标。

于 2013-09-09T21:05:48.807 回答
0

如果您将在与序列化和远程数据传输相关的事情中使用它,请尝试使用 List 的实现类,而不是 List 本身(在声明变量时),以免卡在中间,例如

ArrayList<ArrayList<Integer>> ....

因为 Collections 框架接口不扩展 Serializable 接口

也许这有帮助,因为我过着可怕的经历,因为我从一开始就没有注意到这一点

于 2013-09-09T21:40:10.607 回答