07数组-cnblog

1. 数组

1.1 数组的定义格式

  • 格式一:数据类型 [] 变量名

  • 范例: int[] arr

  • 定义了一个int类型的数组,数组名为arr

  • 推荐格式一

  • 格式二: 数据类型 变量名 []

  • 范例: int arr[]

  • 定义了一个int类型的变量,变量名是arr数组

dataType [] arrayRefVar;   // 首选的方法  

dataType  arrayRefVar[];  // 效果相同,但不是首选方法

int [] arr = new int[3];
/*
  左边:
  	int :数组元素类型
  	[]:这是一个数组
  	arr:数组名称
  右边:
  	new:为数组申请内存空间
  	int:元素类型
  	[]:数组
  	3:数组长度

1.2 内存分配

Snipaste_2021-08-27_09-09-39

Snipaste_2021-08-27_09-12-25

Snipaste_2021-08-27_09-12-52

  • 当多个数组只想同一个内存的时候任何一个数组修改了堆内存的值,另一个数组访问的时候它的元素值也是发生了改变的。
//数组静态初始化
int [] arr = {1,2,1};

案例1: 数组元素求和

Snipaste_2021-08-27_11-43-45

public class SumArr {
    
    
    public static void main(String[] args) {
    
    
        int [] a = {
    
    68,27,95,88,171,996,51,210};
        Sum(a);
    }

    public static void Sum(int[]a){
    
    
        int sum = 0;
        for (int x = 0;x<a.length;x++){
    
    
            if(a[x]%10!=7 && a[x]/10%10!=7 && a[x]%2==0){
    
    
                sum +=a[x];
            }
        }
        System.out.println(sum);
    }
}

案例2: 数组内容相同

Snipaste_2021-08-27_11-54-19

public class SameArr {
    
    
    public static void main(String[] args) {
    
    
        int []a = {
    
    11,22,33,44,55};
        int []b = {
    
    11,22,33,44,55};
        boolean c = Same(a,b);
        System.out.println(c);
    }
    public static boolean Same(int[]a,int[]b){
    
    
        if (a.length!=b.length){
    
    
            return false;
        }

        for(int x=0;x<a.length;x++){
    
    
            if(a[x]!=b[x]){
    
    
                return false;
            }
        }
        return true;
    }
}

案例3: 反转

Snipaste_2021-08-27_13-51-41

Snipaste_2021-08-27_13-54-45

public class Inversion_array {
    
    
    public static void main(String[] args) {
    
    
        int []a = {
    
    19,28,37,46,50};
        Inversion(a);

    }

    public static void Inversion(int []a){
    
    
        for (int start = 0,end=a.length-1;start<=end;start++,end--){
    
    
            //变量交换
            int temp = a[start];
            a[start] =a[end];
            a[end] =temp;
        }
        
        System.out.print("[");
        for(int i =0;i<a.length;i++){
    
    
            if (i==a.length-1){
    
    
                System.out.print(a[i]);
            }else{
    
    
                System.out.print(a[i]+",");
            }
        }
        System.out.print("]");
    }
}

案例: 循环嵌套

Snipaste_2021-08-27_11-42-08


public class MaiJiDemo {
    
    
    public static void main(String[] args) {
    
    
        //第一层循环,用于表示鸡翁的范围,初始化表达式变量定义为x=0,判断条件x<=20
        for(int x = 0;x<=20;x++){
    
    
            for(int y=0;y<=33;y++){
    
    
                int z=100-x-y;
                if (z%3==0 && 5*x+3*y+z/3==100){
    
    
                    System.out.println(x+","+y+","+z);
                }
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/honglaoliu/article/details/120382699