Java中 数组作业的练习

 Java中 数组的练习

   结合上一篇的数组复习,本篇给出一些数组的练习

实例代码一:


package cn.com.blog.array;

import java.util.Scanner;

/*
 * 1.已知一个数组,求数组中心元素。
2.已知一个数组,求所有元素和。
3.已知一个数组,输出所有奇数下标元素。
4.已知一个数组,输出所有元素中,值为奇数的。
5.已知一个数组,将所有元素乘二。
6.已知一个数组,将所有元素加到第一个元素中。
7.已知一个数组A,将奇数位置元素存到B数组中,偶数元素存到C数组中。
 */
public class ArrayExe01 {
   public static void main(String[] args) {
	  int array [] = {2,432,5221,235,2,5352,1,53,5,3,5364,2,2,63,3533,2,53,532,532};
	  Scanner scan = new Scanner(System.in);
	  int num = scan.nextInt();
	  if(num == 1){
		  System.out.println(ArrayExe01.getMidInfo(array));
	  }if(num == 2){
		  System.out.println(ArrayExe01.getSum(array));
	  }if(num == 3){
		  ArrayExe01.print(array);
	  }if(num == 4){
		  ArrayExe01.print1(array);
	  }if(num == 5){
		  System.out.println(ArrayExe01.getArray(array));
	  }if(num == 6){
		  System.out.println(ArrayExe01.getFirstSum(array));
	  }if(num == 7){
		  ArrayExe01.newArray(array);
	  }
   }
   
   // 1.当长度为偶数的时候取的是后面那个
   public  static int getMidInfo(int array[]){
	   int length = array.length;
	   return array[length / 2];
   }
   // 2.数组为int类型
   public static int getSum(int array[]){
	   int sum= 0;
	   for(int i =0 ;i< array.length;i++){
		   sum += array[i];
	   }
	   return sum;
   }
   // 3.循环步进为2即可
   public static void print(int array[]){
	   for (int i = 0; i < array.length; i+=2) {
	       System.out.println(array[i]);
	    }
   }
   // 4.数组为int类型
   public static void print1(int array[]){
	   for (int i = 0; i < array.length; i++) {
	       if(array[i] % 2 == 0){
	    	   System.out.println(array[i]);
	       }
	    }
   }
   
   // 5.将参数的副本作为返回值再次回传
   public static int[]  getArray(int array[]){
	   for(int i =0 ;i < array.length;i++){
		   array[i] = array[i] * 2;
	   }
	   return array;
   }
   // 6.返回第一个元素的值
   public static int getFirstSum(int array[]){
	   int one = array[0];
	   for(int i = 1 ;i< array.length;i++){
		   one = one + array[i];
	   }
	   return one;
   }
   // 7.只作为输出
   public static void newArray(int array[]){
	   for(int i =0 ;i<array.length;i++){
		  if(array[i] % 2==0){
			  System.out.println("偶数: "+array[i]);
		  }else{
			  System.out.println("奇数: "+array[i]);
		  }
	   }
   } 
}

实例代码二:

package cn.com.blog.array;

import java.util.Random;

/**
 * 
 * @author fcs
 * 2014年9月12日
 * ArrayExe02
 * 说明:
 * 1.把A数组的前5个元素复制到B数组中。
2.把1----36分别放入数组中,计算数组对角元素之和。6 * 6的数组
3.判断一个数组是否对称。
4.有一个长度是10的数组,数组内有10个不重复的数字,要求按从大到小排序。
5.有一个长度是10的数组,要求删除某一个位置的元素,后边元素前置。
6.有一个长度是10的数组,按递增排列,用户输入一个数,插入适当位置。
7.有一个长度是10的数组,数组内有10个人名,要求去掉重复的
8.把A数组的第三到第六位之间的元素删除。
9.已知A数组,B数组,定义一个数组C,要求C包含A,B数组中的数据(无重复值)。
 */
public class ArrayExe02 {
	
    public static void main(String[] args) {
    	int array [] = {2,4,1,5,6,7,3,8,9,0};
    	ArrayExe02.sortArray(array);
    	Random rand = new Random();
    	int array1 [] = new int [12];
    	for(int i = 0;i< 10;i++){
    		array1[i] = rand.nextInt(10); 
    	}
    
    	System.out.println("------------------------------------");
    	ArrayExe02.insert(array1, 10);
    	System.out.println("------------------------------------");
    	int array2 [] = new int [10];
    	for(int i =0;i< 10;i++){
    		array2[i] = rand.nextInt(10);
    	}
    	ArrayExe02.deleteRe(array2);
    	
    	ArrayExe02.getSum1(array1, array2);
    	
	}
    //1.注意数组下标越界
    public static int [] newArry(int array[]){
    	int narr [] = new int [5];
    	int length = array.length > 5 ? 5 : array.length;
        for(int i =0 ;i< 5;i++){
        	narr[i] = array[i];
        }
        return narr;
    }
    //2.for循环赋值
    public static int getSum(){
    	int array [][] = new int [6][6];
    	int  num = 0;
    	for(int i =0 ;i < 6;i++){
    		for(int j = 0;j < 6;j++ ){
    			array[i][j] = num++;
    		}
    	}
    	int sum = 0;
    	for(int i =0;i < 6;i++){
    		for(int j =0 ;j< 6;j++){
    			if(i==j || i+j == 5){
    				sum += array[i][j];
    			}
    		}
    	}
    	return sum ;
    }
    //3数组的对称问题
    public static void getMId(){
    	//一维数组
        //二维数组的对称矩阵 
        int array [] = {1,2,3,4,4,3,2,1};
        boolean b = false;
        for(int i =0 ;i< array.length / 2;i++){
        	if(array[i] != array[array.length - i]){
        	     b = true;
        	}	
        }
        if(b){
        	System.out.println("不是对称数组");
        }else{
        	System.out.println("是对称数组");
        }
        boolean b1 = false;
        int array1 [] [] =  {{1,2,3,4},{2,1,4,3},{3,4,1,2},{4,3,2,1}};
        for(int i =0 ;i<4;i++){
        	for(int j = 0;j < i;j++){
        		if(array1[i][j] != array1[j][i]){
        			b1 = true;
        		}
        	}
        }
        if(b1){
        	System.out.println("不是对称数组");
        }else{
        	System.out.println("是对称数组");
        }
        //还有一种情况,在此不做讨论。
    }
    //4.数组的排序问题,这里使用冒泡排序
    public static void sortArray(int array[]){
    	for(int  i =0 ;i < array.length -1;i++){
    		for(int  j = i;j < array.length;j++ ){
    			if(array[i] < array[j]){
    				int temp = array[i];
    				array[i] = array[j];
    				array[j] = temp;
    			}
    		}
    	}
    	for(int i = 0;i< array.length;i++){
    		System.out.println(array[i]);
    	}
    }
    //5.数组的删除操作
    public static void delete(int array[],int index){
    	if(array.length  <=  index){
    		System.out.println("数组下标错误。。。。");
    	    return;
    	}
    	int a = array[index];
    	for(int i = index+1;i<array.length;i++){
    		array[i - 1] = array[i];
    	}
    	for(int i =0 ;i< array.length;i++){
    		System.out.println(array[i]);
    	}
    }
    //6.数组的插入
    public static void insert(int array [],int value){
    	array[10] = value;
    	for(int  i =0 ;i < 11;i++){
    		for(int  j = i;j < array.length;j++ ){
    			if(array[i] > array[j]){
    				int temp = array[i];
    				array[i] = array[j];
    				array[j] = temp;
    			}
    		}
    	}
    	for(int i =0 ;i<array.length;i++){
    		System.out.print(array[i]+" , ");
    	}
    }
    
    //7.去除重复元素
    public static void deleteRe(int array [] ){
    	for(int i =0 ;i<array.length;i++){
    		System.out.print(array[i]+" , ");
    	}
    	boolean brr [] = new boolean [array.length];;
    	for(int i =0 ;i < array.length - 1 ;i++ ){
            	for(int j = i+1;j< array.length;j ++){
                    if(array[i] == array[j] && brr[j] != true){
                    	brr[j] = true;
                    }
            	}
    	   }
    	System.out.println("--------------------");
    	for(int i =0 ;i< array.length;i++){
    		if(brr[i] ==false){
    			System.out.print(array[i]+" , ");
    		}
    	}
    }
    
    //8.采用数组的赋值
    public static void deleteTo(int array [] ){
    	for(int i =0 ;i<array.length;i++){
    		if(i < 2 && i > 5){
    			System.out.print(array[i]+" , ");
    		}
    		
    	}
    }
    //9.先合并再去除重复元素
    public static void   getSum1(int A [],int B[]){
    	System.out.println("9.先合并再去除重复元素");
    	int array [] = new int [A.length+B.length];
    	for(int i =0;i<array.length;i++){
    		if(i < A.length){
    			array[i] = A[i];
    		}else{
    			array[i] = B[i - A.length];
    		}
    	}
    	 deleteRe(array);
    }
}

其实很多不大的项目或者题目中,数组通常会很有帮助,而且简单易用,这里只是列出一些比较浅显的题目和自己的测试。


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值