第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

從數(shù)組中刪除空值并從 Java 中的方法獲取它

從數(shù)組中刪除空值并從 Java 中的方法獲取它

蝴蝶刀刀 2023-06-04 17:54:03
我正在嘗試從數(shù)組中刪除空值,然后返回它們以使用新值做一些其他事情。但是,我對如何獲取更新的數(shù)組感到困惑。這是空刪除代碼。String[] removeNull(String[] nullArray) {? ? ? ? int nullCounter = 0;? ? ? ? //checking if any is null? ? ? ? for(int i = 0; i < nullArray.length; i++) {? ? ? ? ? ? if(nullArray[i]==null) {? ? ? ? ? ? ? ? nullCounter++;? ? ? ? ? ? }? ? ? ? }? ? ? ? String[] noNulls = new String[nullArray.length-nullCounter];? ? ? ? if(nullCounter>0) {? ? ? ? //make a non null array? ? ? ? ? ? for(int i = 0, j = 0; i <noNulls.length; i++) {? ? ? ? ? ? ? ? if(nullArray[i]!=null) {? ? ? ? ? ? ? ? ? ? noNulls[j] = nullArray[i];? ? ? ? ? ? ? ? ? ? j++;? ? ? ? ? ? ? ? }? ? ? ? ? ? }? ? ? ? }? ? return noNulls;?? ? }我很確定這已經(jīng)是正確的(如果我錯了請糾正我)。然后,我在構(gòu)造函數(shù)中調(diào)用它。public theBoundary(String[] bounds){? ?removeNull(bounds);}我調(diào)用 removeNull(bounds) 后,新數(shù)組的值是否存儲在數(shù)組邊界中?還是會存儲在數(shù)組noNull中?我似乎找不到新值的存儲位置。謝謝,如有錯誤請指出。我已經(jīng)討論了半個小時了。
查看完整描述

3 回答

?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗 獲得超7個贊

removeNull()noNulls返回在方法內(nèi)部創(chuàng)建的數(shù)組。目前,在 中theBoundary(),您只需調(diào)用removeNull(bounds),但不將其分配給變量。新創(chuàng)建的無空數(shù)組被創(chuàng)建,未分配,并立即被垃圾收集。


如果你想對你的非空數(shù)組做一些事情(我假設(shè)你這樣做),請執(zhí)行以下操作:


public theBoundary(String[] bounds) {

    String[] withoutNulls = removeNull(bounds);


    doSomething(withoutNulls);  // whatever you need here

}

請注意,除非您真的必須使用數(shù)組,否則請考慮使用 aList甚至 a Stream。


List例子:


List<String> list = ...  // from somewhere else

list.removeIf(s -> s == null);


doSomething(list);

Stream例子:


Stream<String> stream = ... //from somewhere else

stream.filter(s -> s != null);


doSomething(stream);

編輯


即使您確實需要數(shù)組,以下內(nèi)容也可以使用:


String[] noNulls = (String[]) Arrays.stream(inputArray).filter(Objects::nonNull).toArray();



查看完整回答
反對 回復(fù) 2023-06-04
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗 獲得超0個贊

我認(rèn)為沒有必要將數(shù)組迭代兩次!

您可以改為在數(shù)組上使用流并過濾不為 NOT NULL 的索引。

此外,您可以在不需要創(chuàng)建removeNull方法的情況下執(zhí)行此操作,并直接在您的theBoundary方法中執(zhí)行此操作。

您的代碼如下所示:

String[] arrayWithoutNull = Arrays.stream(bounds).filter(Objects::nonNull).toArray(String[]::new)

我希望這能解決你的問題。


查看完整回答
反對 回復(fù) 2023-06-04
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗 獲得超3個贊

你是這個意思嗎?

public theBoundary(String[] bounds){
    String[] cleanedBounds = removeNull(bounds);
}

你沒有在原地做,所以你需要將它分配回一個新數(shù)組


查看完整回答
反對 回復(fù) 2023-06-04
  • 3 回答
  • 0 關(guān)注
  • 214 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號