已知,數組int?oldArr[]={1,2,3,4,5,0,0,6,7,4}
將以上數組中值為0的項去掉,將不為0的值存入一個新的數組,生成的新數組為int?newArr[]={1,2,3,4,5,6,7,4}
應該如何編寫代碼,自己只能將0的元素去掉后打印輸出成1,2,3,4,5,6,7,4??????應該怎能打印成int?newArr[]={1,2,3,4,5,6,7,4}????求詳細解釋
2 回答
已采納

損失函數
TA貢獻114條經驗 獲得超93個贊
public static void arrayDemo()
{
int oldArr[]={1,2,3,4,5,0,0,6,7,4};
List<Integer> convertList = new ArrayList<Integer>();
for (int old : oldArr) {
if(old != 0)
{
convertList.add(old);
}
}
Object[] newArr = convertList.toArray();
for (Object object : newArr) {
System.out.println(object);
}
}
如果不明白,我再來加上注釋。
望采納!

慕萊塢9220042
TA貢獻377條經驗 獲得超508個贊
你好:
我自己寫了一個,可能代碼比較笨拙,你可以看下:
public?static?void?main(String[]?args)?{ ???????? int?oldArr[]?=?{1,2,3,4,5,0,0,6,7,4}; int?j?=?0; //要定義新數組的長度計算 int?newArrLenght?=?0; for?(int?i?=?0;?i?<?oldArr.length;?i++)?{ if(oldArr[i]?!=?0){ newArrLenght++; } } //初始化新數組,循環取出非零數字添加到新數字里 int?newArr[]?=?new?int[newArrLenght]?; for?(int?i?=?0;?i?<?oldArr.length;?i++)?{ if(oldArr[i]?!=?0){ newArr[j]?=?oldArr[i]; j++; } } for?(int?i?=?0;?i?<?newArr.length;?i++)?{ if(i?==?0){ System.out.print("int?newArr[]={"?+?newArr[i]?+?","); }else?if(i?==?newArr.length-1){ System.out.print(newArr[i]?+?"}"); }else{ System.out.print(newArr[i]?+?","); } } ???}
望采納!
添加回答
舉報
0/150
提交
取消