亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從包含數組的數組中刪除空值

如何從包含數組的數組中刪除空值

開滿天機 2023-06-21 13:19:56
我有一個像這樣的數組String arr[][] = {{"abc"}, {"bcd"}, {null}}這是多維數組(數組中的單字符串數組)。我想刪除這些空值并希望最終結果為{{"abc"}, {"bcd"}}. 該數組可以是任意大小,并且可以有任意數量的空值我試過這樣的事情。我知道我可以使用傳統的 for 循環,但我想使用 java8 或更高效地進行循環。 String arr1[][] = Arrays.stream(arr)             .filter(str -> (((str != null) && (str.length > 0))))             .toArray(String[][]::new);
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

您可以使用來自Arrays輔助類的流來過濾非空值:

String arr[][] = {{"abc"}, {"bcd"}, {null}};

String result[][] = Arrays.stream(arr)
    .map(innerArray -> Arrays.stream(innerArray).filter(Objects::nonNull).toArray(String[]::new))
    .toArray(String[][]::new);

編輯:

正如@Andreas 指出的那樣,這會留下空的內部數組,我們需要用額外的filter(innerArray -> innerArray.length > 0). 最后:

String result[][] = Arrays.stream(arr)
    .map(innerArray -> Arrays.stream(innerArray).filter(Objects::nonNull).toArray(String[]::new))
    .filter(innerArray -> innerArray.length > 0)
    .toArray(String[][]::new);


查看完整回答
反對 回復 2023-06-21
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

你的解決方案就快到了;支票只有一個錯誤:

String arr1[][] = Arrays.stream(arr)
                        .filter(str -> str[0] != null)
                        .toArray(String[][]::new);


查看完整回答
反對 回復 2023-06-21
  • 2 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號