Java:如何创建一个接受第一个元素列表的列表缺点

问题描述 投票:0回答:1

[当我创建Java列表并且希望头是列表时,它应该打印[[--1,0],1,2,3,4]或保留它只是保留子列表[-1, 0]作为两个单独的元素,例如[-1、0、1、2、3、4],以及如何获得第一个结构作为aswer。

java list arraylist structure cons
1个回答
0
投票

Java中有几种方法可以做到这一点。我认为,就您的情况而言,一个要比另一个好,但我只是出于完整性的考虑而向你们展示。

如果使用java.util.List类型,则可以创建Object的列表。这将使您可以在列表元素中添加任何内容。但是,检索这些元素时将需要强制转换。

List<Object> myList = new LinkedList<>();
List<Integer> nestedList = new LinkedList<>();
nestedList.add(-1);
nestedList.add(0);
myList.add(nestedList);
myList.add(1);
...etc...

// You need to cast when taking elements out of the list.
List<Integer> newNest = (List<Integer>) myList.get(0);

但是,由于以上要求进行强制转换,因此我不建议您使用此方法。

使用数组或List可以完成的第二种(也是更好的方法)是使用二维数组/列表。看起来像这样:

// with arrays

int[] myTwoDarr = int[5][];
myTwoDarr[0] = new int[]{-1, 0};
myTwoDarr[1] = new int[]{1};
myTwoDarr[2] = new int[]{2};
myTwoDarr[3] = new int[]{3};
myTwoDarr[4] = new int[]{4};

// With Lists

List<List<Integer>> myList = new LinkedList<>();
List<Integer> nestedList1 = new LinkedList<>();
nestedList.add(-1);
nestedList.add(0);
myList.add(nestedList1);
List<Integer> nestedList2 = new LinkedList<>();
nestedList2.add(1);
myList.add(nestedList2)
...etc...

在您的示例中,您说您想要这样:[[-1,0],1,2,3,4]。这个2D阵列解决方案看起来更像这样:[[-1,0],[1],[2],[3],[4]]。但是,我认为这是Java中的最佳选择,因为它不会强制您通过强制转换跳过循环,这是使Array或List包含您想要的多种类型的唯一方法。

© www.soinside.com 2019 - 2024. All rights reserved.