需求
1.將一個給定的整型數組轉置輸出,
例如: 源數組,1 2 3 4 5 6
轉置之后的數組,6 5 4 3 2 1
2.現在有如下的一個數組:
int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求將以上數組中值為0的項去掉,將不為0的值存入一個新的數組,生成的新數組為:
int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5} ;
3.現在給出兩個數組:
數組a:"1,7,9,11,13,15,17,19"
數組b:"2,4,6,8,10"
兩個數組合並為數組c。
思路
1. (1)給任意一個確定的數組,作為參數;
(2)定義一個函數,完成轉置數組的功能(用冒泡排序從大到小完成排序),然后返回該數組;
(3)再主方法里面調用該函數,並傳入一個確定的數組,返回轉置后的數組,然后遍歷查看;
2. (1)定義一個函數,參數為一個整形數組,先判斷里面非零的個數;然后再創建一個新數組,
再把舊數組里面的非零值賦值給新的數組;最后返回新數組;
(2)主方法里面定義一個數組,以該數組為參數,調用函數,返回一個新的數組,然后遍歷
新數組查看
3. (1)定義一個函數,完成合並兩個數組,並返回合並之后的數組
(2)定義兩個數組,調用函數,返回一個數組並遍歷查看它
源碼
1.
1 package one; 2 3 /** 4 * @author xjs 5 * @date 2019/4/22 - 23:11 6 */ 7 8 public class Test1 { 9 10 public static int[] fun(int [] arr){ 11 //冒泡排序--把最小的放最后面 12 for (int i=0;i<arr.length-1;i++){//length-1--要排到最后的數的個數為n-1 13 for(int j=0;j<arr.length-1-i;j++){//length-i趟------兩兩比較的次數 n-1-i,而且每次比較下標都是從0開始 14 if(arr[j]<arr[j+1]){ 15 int temp=arr[j]; 16 arr[j]=arr[j+1]; 17 arr[j+1]=temp; 18 } 19 } 20 } 21 return arr; 22 } 23 24 public static void main(String[] args) { 25 int[] arr={1,2,3,4,5,6}; 26 arr=Test1.fun(arr); 27 28 for (int i = 0; i < arr.length; i++) { 29 System.out.print(arr[i]+" "); 30 } 31 } 32 }
2.
1 package one; 2 3 /** 4 * @author xjs 5 * @date 2019/4/23 - 8:50 6 */ 7 8 public class Test4 { 9 /*函數:通過傳來一個數組,先判斷里面的非零個數,然后創建 10 一個新數組,再把舊數組里面的非零數賦值到新的數組里面, 11 最后返回新的數組*/ 12 public static int[] fun(int oldArr[]){ 13 int k=0; 14 for (int i = 0; i < oldArr.length; i++) { 15 if (oldArr[i]==0){ 16 k++; 17 } 18 } 19 int m=oldArr.length-k; 20 int[] newArr=new int[m]; 21 int j=0; 22 for (int i = 0; i < oldArr.length; i++) { 23 if (oldArr[i]!=0){ 24 newArr[j]=oldArr[i]; 25 j++; 26 } 27 } 28 return newArr; 29 } 30 31 public static void main(String[] args) { 32 int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; 33 int[] newArr=fun(oldArr); 34 for (int i = 0; i < newArr.length; i++) { 35 System.out.print(newArr[i]+" "); 36 } 37 } 38 }
3.
1 package one; 2 3 /** 4 * @author xjs 5 * @date 2019/4/23 - 8:23 6 */ 7 8 public class Test3 { 9 10 public static int[] fun(int[] a,int[] b){ 11 int m=a.length+b.length; 12 int[] c=new int[m]; 13 for (int i = 0; i <c.length ; i++) { 14 if (i<a.length){ 15 c[i]=a[i]; 16 }else { 17 c[i]=b[i-a.length]; 18 } 19 } 20 return c; 21 } 22 23 public static void main(String[] args) { 24 //可將任意確定的數組傳進函數,然后合並 25 int[] a={1,7,9,11,13,15,17,19}; 26 int[] b={2,4,6,8,10}; 27 int[] c=fun(a,b); 28 for (int i = 0; i < c.length; i++) { 29 int i1 = c[i]; 30 System.out.print(i1+" "); 31 } 32 } 33 }