Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 - Fatal编程技术网

Java返回嵌套列表的元素类型

Java返回嵌套列表的元素类型,java,Java,我想要实现的是一个嵌套的列表(或数组),其中的元素是由一对整数组成的列表(或数组)。这是为了存储一些数据,我想有效地访问这些整数 所以我用Java创建了一个嵌套列表,如下所示: List combined = new ArrayList(); int x[] = new int[2]; List segl = Arrays.asList(x) combined.addAll(segl); 嵌套列表稍后将附加更多类似segl的列表。 现在我想从combined返回一个元素。但是使用combine

我想要实现的是一个嵌套的列表(或数组),其中的元素是由一对整数组成的列表(或数组)。这是为了存储一些数据,我想有效地访问这些整数

所以我用Java创建了一个嵌套列表,如下所示:

List combined = new ArrayList();
int x[] = new int[2];
List segl = Arrays.asList(x)
combined.addAll(segl);
嵌套列表稍后将附加更多类似segl的列表。
现在我想从combined返回一个元素。但是使用
combined.get(0)
返回的元素数据类型是object,而不是segl之类的列表,因此我无法对其执行任何操作(例如,从segl返回单个int元素。我不知道如何将其更改为列表或数组。

根据您在评论中提供的信息,您希望有“列表列表”,其中第二个
列表有两个元素。不幸的是,您不能将数组用作列表的通用类型。因此,我认为您要做的是可能是这样的:

// This is a List which holds other Lists.
List<List<Integer>> combined = new ArrayList<>();
List<Integer seql = new ArrayList<>(2); // Initialize with a size of 2.
// add justs adds seql to combined. addAll will add all elements of seql to combines
combined.add(segl);

你到处都在使用。
List
ArrayList
希望得到一个:
List
。哦,我建议不要混合使用数组和
List
s,除非你有令人信服的理由这样做。正如前面的评论所指出的,你得到的是
对象,因为你使用的是原始类型。但是,你可以您扩展了您想要实现的内容。
是否组合了
应该是一个“列表列表”?(例如,
List@Wouter van der Linde我是Java新手。刚刚搜索了原始类型并尝试了参数化。我想要实现的是一个嵌套列表(或数组),其中的元素是列表(或数组)由2个整数组成。这是为了存储一些数据,我希望有效地访问这些整数。此时,您不应该担心效率。如果出于某种原因需要一对整数,您应该创建一个类来收集这些整数。可能是x-y信息的一个点,或者是纬度和经度的一个位置。T他制作了一个列表。使用
数组
:如果你知道有多少个列表(或数组)要添加到
组合中
,你也可以尝试这样做。
int[][]组合=新的int[100][2];
然后你可以使用索引访问每个
seql
:第一个元素:
组合的[0][0]
第二个元素:
组合的[0][1]
要添加的对数未知。我厌倦了你的方法,它确实返回了对的列表。比方说,我使用了“List aa=combined.get(0);”。但是当我使用“int aaa=aa.get(0);”返回单个整数时,它不起作用。你能指出原因吗?你能更精确地解释一下什么“不起作用”?
aa.get(0)
应该返回一个
int
。在访问
aa
之前,您是否在
aa
中添加了
int
(例如,您是否执行了类似
aa.add(5)
的操作?我想我理解,您正在尝试访问一个不存在的元素。(aa.get(0)
中没有任何内容,因此该调用返回
null
)由于
泛型
的原因,您只能将
整数
包装类型添加到列表中。如果您执行
int aaa=aa.get(0)
Java将自动
autobox
添加到
int
(原语)中,如果
aa.get(0)则该原语不起作用
算不了什么,因为Java试图
autobox
a
null
-值。在访问它们之前,您需要将元素添加到
aa
。:)我想我知道问题出在哪里,但我不确定如何解决它。实际上,整数对seql来自其他地方,因此我现在有
int seg[]=new int[2];seg[0]=5;seg[1]=4;List ss=Arrays.asList(seg);List segl=ss;
这就是segl当前的定义方式。正如您所见,aa不是空的。错误消息是“class[I不能转换为class java.lang.Integer([I和java.lang.Integer在加载程序“引导”的java.base模块中”)。
   // Using Arrays.asList(..) 
   List<List<Integer>> combined = new ArrayList<>();
   Integer[] seql = new Integer[2];
   combined.add(Arrays.asList(segl));

   //If Integer[] is not possible.
   List<List<Integer>> combined = new ArrayList<>();
   int[] seql = new int[2];
   List<Integer> seqlAsList = Arrays.stream(seql).boxed().collect(Collectors.toList());
   combined.add(seqlAsList );