Java:从 ArrayList 中获取所有第一个条目

我有一个包含用户信息数组的 ArrayList(约 900 个条目):


[swaschit, Sophia Waschitz, Dormant, Inactive, 1/1/2018]

[kolanday, Kyle Olanday, Dormant, Inactive, 1/1/2018]

[npowers, Neil Powers, Assigned, Active, 2/11/2018]

我想从此列表中生成一个数组,该数组仅包含每个对象的第一个元素:


[swaschit, kolanday, npowers, ...]

这样做最有效的方法是什么?


慕哥9229398
浏览 533回答 4
4回答

MMTTMM

一种方法是使用 aStream和map每个内部数组到它的第一个元素:List<String>&nbsp;firstElements&nbsp;=&nbsp;yourList.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(x&nbsp;->&nbsp;x[0].toString())&nbsp;//&nbsp;you&nbsp;might&nbsp;need&nbsp;toString()&nbsp;here&nbsp;if&nbsp;your&nbsp;array&nbsp;is&nbsp;an&nbsp;Object[] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toList());如果您想要一个字符串数组:String[]&nbsp;firstElements&nbsp;=&nbsp;yourList.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(x&nbsp;->&nbsp;x[0].toString())&nbsp;//&nbsp;you&nbsp;might&nbsp;need&nbsp;toString()&nbsp;here&nbsp;if&nbsp;your&nbsp;array&nbsp;is&nbsp;an&nbsp;Object[] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toArray(String[]::new);我还建议您不要使用这样的嵌套数组。您应该使用要存储的属性创建一个类,并创建一个List类。

小唯快跑啊

因为我认为第一个条目是唯一的(因为它似乎是用户名),所以我建议使用 Map.&nbsp;这样,您可以简单地列出键。HashMap<String,ArrayList<String>>&nbsp;hashmap=new&nbsp;HashMap<>();或者,您可以简单地创建一个包含该信息的类,以避免需要使用 ArrayList,但我不知道这是否是一个选项。

偶然的你

正如所指出的那样,使用适当设计的Object而不是array此类异构数据(猜测它们String实际上是 s)。如果您坚持保持原样,您只需要分配一个具有原始大小的新数组ArrayList并遍历,获取所需的列。假设ArrayList<String[]> listint size = list.size();String[] firstColumn = new String[size];for (int i = 0; i < list.size(); i++) {&nbsp; &nbsp; firstColumn[i] = list.get(i)[0];}

斯蒂芬大帝

我想你可以做到&nbsp;list.stream().map(array -> array[0].toString()).toArray()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java