我正在寫一個Java代碼,應該刪除arraylist中的所有「0」,並返回一個新的列表,但是沒有「0」。替代(?)Java解決方案| ArrayList
舉一個例子:
public static void main(String[] args) {
int[] sound = {0, 0 , 0, 0, -14, 120, 67, -234, -15, -389, 289, 178, -437, 33, 15, 0, 0, -32, 230, 368};
int[] result = trimSilenceFromFront(sound);
System.out.println(Arrays.toString(result));
}
應該是:
[-14, 120, 67, -234, -15, -389, 289, 178, -437, 33, 15, 0, 0, -32, 230, 368]
我這樣做代碼:
import java.util.*;
public class NoZero {
public static int[] trimSilenceFromFront(int[] samples) {
int[] newArrayList = new int[samples.length];
for (int i = 0; i < samples.length; i = i + 1) {
if (samples[i] != 0) {
newArrayList.add(samples);
}
}
return newArrayList;
}
}
當我看了看回答他們不得不同時與混合循環循環。但是由於有多種解決方法:我的代碼是否錯誤?
更新:我誤解了這個問題。我認爲它應該刪除所有的「0」。但正如你可以看到的結果,它應該只在開始時消除沉默。
謝謝大家!
有10000點的方式來做到這一點。解決方案的數量與代碼的正確性有何關係? – Maroun
'int [] newArrayList = new int [samples.length];'這會創建一個新的_array_而不是'ArrayList'。另外'newArrayList.add(samples);'這會嘗試將整個'samples'數組添加到'newArrayList',而不僅僅是'samples [i]' –
'newArrayList'的值是'int []',你不能使用'add'就可以了。它不是*數組列表。 – Maroun