直接访问Java中ArrayList内的列

时间:2018-05-05 15:20:26

标签: java arraylist 2d

我试图访问2D ArrayList中的单个元素而不是整个列。因为当你需要一行时很容易做到这一点(因为2D数组是按行和列读取的),对于我来说,为列做同样的事情并不是那么简单。

您对此有何建议?

非常感谢任何形式的帮助!

非常感谢!

3 个答案:

答案 0 :(得分:0)

最好的方法是在List中使用List

List<List<String>> listWithList = new ArrayList<List<String>>();

要从 List获取孩子 List,您需要为第一个0 >孩子 List

List<String> anotherList = new ArrayList<String>();
anotherList = listWithList.get(0); // get the first complete List

要从孩子 String获取List,您需要致电:

String someText = anotherList.get(0); // get the first String

或直接来自List中的List

String moreText = listWithList.get(0).get(0); // get the first String from the first List

答案 1 :(得分:0)

无法直接访问面向行的二维列表中的列。但是,您始终可以提取所需的值。

要检索索引n的列,您只需运行:

twoDList.stream().map(innerList -> innerList.get(n))
                 .collect(Collectors.toList());

这也可以轻松更改为正常的for-each循环。

List<T> column = new ArrayList<T>();

for(List<T> row: twoDList) {
    column.add(row.get(n));
}

答案 2 :(得分:0)

我最近发布了类似here的内容。

在这里,我创建了一个def word_break_recur(dic, st, res): leng=len(st) if leng==0: print(res) return for i in range(leng): pre_st=st[: i] if pre_st in dic: res.append(pre_st) st=st[i: ] #if combine these lines, as word_break_recur(dic, st[i: ], res ) word_break_recur(dic, st, res ) #it gives totally different results dic=['this', 'th', 'is', 'famous', 'word', 'break', 'b', 'r', 'e', 'a', 'k', 'br', 'bre', 'brea', 'ak', 'problem'] string='wordbreakproblem' res=[] res=word_break_recur(dic, string, res) 对象,允许我操作2D数组的单个列。在这种情况下,我正在对它进行排序。

ColumnList