需求
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 }