Java陣列——去掉0元素合成新陣列
阿新 • • 發佈:2018-12-16
1.現在有如下一個陣列:
Int oldarr[]={1,5,9,0,4,0,3,6,0,7,8,0};
要求將以上陣列中的0項去掉,將不為0的值存入一個新的陣列;
2.思路:
我們可以定義兩個陣列,舊陣列中是原陣列,新陣列是舊陣列中去掉0元素的其他元素;
要想列印新陣列,必須動態初始化陣列,且遍歷的時候必須知道新陣列的長度;
新陣列長度可以用舊陣列長度減去0元素的個數;
要想求出0元素的個數,用迴圈遍歷舊陣列即可;
最後將舊陣列中非0元素賦值給新陣列即可;
package Hello; public class test { public static void main(String[] args) { //定義陣列並初始化 int oldarr[]=new int[]{1,5,9,0,4,0,3,6,0,7,8,0}; //得到舊陣列零的個數 int count=0; for(int i=0;i<oldarr.length;i++){ if(oldarr[i]==0){ count++; } } //定義新陣列,由於這裡需要得知新陣列的長度,因此必須求出舊陣列中零的個數 int newarr[]=new int[oldarr.length-count]; //遍歷原來的舊陣列 for(int i=0,j=0;i<oldarr.length;i++){ //將舊陣列中不等於0的元素賦給新陣列 if(oldarr[i]!=0){ newarr[j]=oldarr[i]; j++; } } System.out.println("舊陣列:"); for(int a:oldarr){ System.out.print(a+" "); } System.out.println(); System.out.println("新陣列:"); for(int a:newarr){ System.out.print(a+" "); } } }
結果為: