Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何在Java中实现列表列表?还是有比列表更好的方法?_Java_List - Fatal编程技术网

我应该如何在Java中实现列表列表?还是有比列表更好的方法?

我应该如何在Java中实现列表列表?还是有比列表更好的方法?,java,list,Java,List,我试着做一个变量偏移量,它等于((2,1),(2,-1),(1,-2)),通过它我可以迭代得到每个位置的X,Y坐标 在python中,我只使用列表列表。我想我也可以用Java来做这件事,但用这种语言做起来似乎要困难得多 我认为int[]偏移量可能会起作用,但显然没有骰子。然后,由于它是一个列表列表(不仅仅是一个列表),我尝试了int[][]offset,eclipse仍然认为我是个白痴 我错过了什么?或者我只是让它变得比需要的更难,事实上,你建议做一些非常简单的事情,而不是列出一个列表?最好的办

我试着做一个变量偏移量,它等于((2,1),(2,-1),(1,-2)),通过它我可以迭代得到每个位置的X,Y坐标

在python中,我只使用列表列表。我想我也可以用Java来做这件事,但用这种语言做起来似乎要困难得多

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


我错过了什么?或者我只是让它变得比需要的更难,事实上,你建议做一些非常简单的事情,而不是列出一个列表?

最好的办法是使用

点=新点(1,4);
列表点=新的ArrayList();

另一种方法是使用列表列表。不推荐。非面向对象

 List<List<Integer>>
列表

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

class AxisX{
 private List<Integer>
}
类AxisX{ 私人名单 } 把它放在另一个物体里

class Coordinates{
    private List<AxisX>
}
类坐标{
私人名单
}

最好的办法是使用

点=新点(1,4);
列表点=新的ArrayList();

另一种方法是使用列表列表。不推荐。非面向对象

 List<List<Integer>>
列表

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

class AxisX{
 private List<Integer>
}
类AxisX{ 私人名单 }
把它放在另一个物体里

class Coordinates{
    private List<AxisX>
}
类坐标{
私人名单
}

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

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

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

list.get(j).get(i);
第一个get调用在list的第i个索引处返回list 第二个get调用返回内部列表的第j个元素

不过对于这个例子,我会支持@Tom_G,并建议使用点对象之类的东西
然后,您只需要一个列表,即处理单个对象中x,y坐标的点。

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

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

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

list.get(j).get(i);
第一个get调用在list的第i个索引处返回list 第二个get调用返回内部列表的第j个元素

不过对于这个例子,我会支持@Tom_G,并建议使用点对象之类的东西
然后,你只需要一个列表,点处理X,Y在一个对象中的坐标。

如果你将它用在与序列化和远程数据传输有关的东西上,尝试使用列表的实现器类,并且不列出它自己(同时声明变量),这样就不会被卡在中间,比如

ArrayList<ArrayList<Integer>> ....
ArrayList。。。。
因为集合框架接口不扩展可序列化接口


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

< P>如果你将它用在与序列化和远程数据传输有关的事情上,试着使用列表的实现器类,不要列出它自己(同时声明你的变量),以免陷入中间,比如

ArrayList<ArrayList<Integer>> ....
ArrayList。。。。
因为集合框架接口不扩展可序列化接口


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

为什么你不使用
对象的
列表
?Java是一种面向对象的语言。当您开始构建复杂的嵌套基元值集合时,这是一个很好的迹象,表明您正在以错误的方式进行操作。即使在C这样的语言中,最好使用
结构数组
。@TomG Python也是一种OOPL;选通问题是简单性以及在何处/如何进行测试。为什么不使用
对象的
列表
?Java是一种面向对象的语言。当您开始构建复杂的嵌套基元值集合时,这是一个很好的迹象,表明您正在以错误的方式进行操作。即使在C这样的语言中,最好使用
结构数组
。@TomG Python也是一种OOPL;选通问题是简单性以及在何处/如何进行测试。