我有一個包含用戶信息數組的 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, ...]這樣做最有效的方法是什么?
4 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
一種方法是使用 aStream
和map
每個內部數組到它的第一個元素:
List<String> firstElements = yourList.stream() .map(x -> x[0].toString()) // you might need toString() here if your array is an Object[] .collect(Collectors.toList());
如果您想要一個字符串數組:
String[] firstElements = yourList.stream() .map(x -> x[0].toString()) // you might need toString() here if your array is an Object[] .toArray(String[]::new);
我還建議您不要使用這樣的嵌套數組。您應該使用要存儲的屬性創建一個類,并創建一個List
類。

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
因為我認為第一個條目是唯一的(因為它似乎是用戶名),所以我建議使用 Map. 這樣,您可以簡單地列出鍵。
HashMap<String,ArrayList<String>> hashmap=new HashMap<>();
或者,您可以簡單地創建一個包含該信息的類,以避免需要使用 ArrayList,但我不知道這是否是一個選項。

偶然的你
TA貢獻1841條經驗 獲得超3個贊
正如所指出的那樣,使用適當設計的Object而不是array此類異構數據(猜測它們String實際上是 s)。
如果您堅持保持原樣,您只需要分配一個具有原始大小的新數組ArrayList并遍歷,獲取所需的列。假設ArrayList<String[]> list
int size = list.size();
String[] firstColumn = new String[size];
for (int i = 0; i < list.size(); i++) {
firstColumn[i] = list.get(i)[0];
}
添加回答
舉報
0/150
提交
取消