我试图访问2D ArrayList中的单个元素而不是整个列。因为当你需要一行时很容易做到这一点(因为2D数组是按行和列读取的),对于我来说,为列做同样的事情并不是那么简单。
您对此有何建议?
非常感谢任何形式的帮助!
非常感谢!
答案 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