day05_数组(array)

array

数组的定义

1.动态定义:数据类型[]   数组名  = new  数据类型[元素个数];

2.静态定义:数据类型[]   数组名  = new  数据类型[]{,,,,,,} ;  -------------->标准格式

		    数据类型[]   数组名  = {,,,,,,} ;   --------->省略格式

一 . [交换元素新数组输出]

package array_TestWork;       方法可以嵌套调用,不可以嵌套定义
/*
1.分析以下需求,并用代码实现:
	(1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
	(2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
 */

public class Test01{
    public static void main(String[] args){
        //1.定义给定int类型数组
        //2.有参无返回值  打印输出   直接调用
        //3.打印方法中嵌套调用  获取最大值索引方法   获取最小值索引的方法   交换方法(无返回值)
        //4.遍历数组输出
        int[] arr = {6,2,9,15,1,5,20,7,18};
        println(arr);
    }

    public static void println(int[] arr){
        //赋值调用
        int maxIndex = getMaxIndexx(arr);
        int minIndex  = getMinIndex(arr);
        swap(arr,maxIndex,arr.length-1);
        swap(arr,minIndex,0);
        //遍历数组
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }
    //获取最大值索引的方法
    public static int getMaxIndexx(int[] arr){
        //假设第一个元素为最大值
        int index = 0;
        for(int i = 0;i<arr.length;i++){
            if(arr[index]<arr[i]){
                index = i;
            }
        }
        return index;
    }
    //获取最小值索引的方法
    public static int getMinIndex(int[] arr){
        //假设第一个元素为最小值
        int index = 0;
        for(int i = 0;i<arr.length;i++){
            if(arr[index]>arr[i]){
                index = i;
            }
        }
        return index;
    }
    //交换方法
    public static void swap(int[] arr,int i,int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] =temp;
    }
}

二. [数组在方法中的应用]

package array_TestWork;
//5,定义一个方法,接收一个int数组,如果数组包含数字2两次,或数字3两次,则返回true.
public class Test04 {
    public static void main(String[] args){
        int[] arr = {23,2,3544542,28,3};
        boolean b = method(arr);
        System.out.println("b="+b);
    }
    //1.有参数有返回值   赋值调用
    //2.if   逻辑或判断
    //3.元素次数变量
    public static boolean method(int[] a){
        //定义元素为2和3的次数变量
        int count1 = 0;
        int count2 = 0;
        
        for(int i = 0;i<a.length;i++){  //遍历数组
            if(a[i]==2){
                count1++;
            }
            if(a[i]==3){
                count2++;
            }
        }
        return count1==2||count2==2;
    }
}

三.[赋值调用返回新数组]

package array_TestWork;
//9,定义一个方法,接收int数组,返回它的前2个元素的新数组。如果数组长度小于等于2,则返回原数组。------->  (新数组遍历)
public class Test07 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};
        int[] a = method(arr);
        for(int i = 0;i<a.length;i++){
            System.out.print(a[i]+"  ");
        }
    }
    //1.有参数有返回值--------->赋值调用
    //2.数组长度作为判断条件
    public static int[] method(int[] arr){
        if(arr.length<=2){
            return arr;
        }else{   //数组长度大于2时新创建数组
            int[] newarr = new int[6];  //新创建有个数组
            newarr[0] = arr[0];
            newarr[1] = arr[1];
            return newarr;
        }
    }
}
posted @ 2019-05-15 00:24  途友  阅读(221)  评论(0)    收藏  举报