Java入门(四)

数组

定义

两种方法都可以,但是第二种不推荐使用

int[] arr;
int arr[]; //不推荐使用

数组初始化

初始化是为了数组开辟内存空间,并为数组中的每个元素赋予初始值

动态初始化:只给出长度,由系统给初始化值

静态初始化:给出初始化值,由系统决定长度

数据类型[] 数组名 = new 数据类型[数组长度];

int[] arr = new int[3]

获取数组中的数据

用arr得到的是地址,用arr[i]可以得到i所在位置的数据 

获取数组中元素个数:数组名.length

Java内存分配

  • 栈:存储局部变量,局部变量就是定义在方法中的变量,使用完毕,立即回收
  • 堆:存储的是new出来的东西,实体,对象,每一个对象都有一个地址值,并且每一个对象的数据都有默认值,数据使用完毕后,会在垃圾回收器空闲的时候被回收
  • 方法区
  • 本地方法区:和系统相关
  • 寄存器:给CPU使用

图例:int[] arr = new int[3]

数组的静态初始化

数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3}

举例:int[] arr = new int[]{1, 2, 3};

简化格式:int[] arr = {1, 2, 3};

数组获得最大值

class hello {
    public static void main(String[] args) {
    int[] arr = {1,2,3,4};
    int max = arr[0];
    for(int i = 0; i < arr.length; i++){
        if(arr[i] > max){
            max = arr[i];
        }
    }
    System.out.println(max);
    }
}

数组练习之评委打分

import java.util.Random;
import java.util.Scanner;
class hello {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);
        for(int i = 0; i < arr.length; i++){
            System.out.println("please input the score" + ' ' + i);
            int score = sc.nextInt();
            arr[i] = score;
        }

        int max = arr[0];
        for(int i = 0; i < arr.length; i++){
            if(arr[i] > max){
                max = arr[i];
            }
        }

        int min = arr[0];
        for(int i = 0; i < arr.length; i++){
            if(arr[i] < min){
                min = arr[i];
            }
        }

        int sum = 0;
        for(int i = 0; i < arr.length; i++){
            sum += arr[i];
        }

        int avg = (sum - max -min)/(arr.length - 2);

        System.out.println(avg);
    }
}

不死神兔问题

有一对兔子,从出生后第三个月每个月都生一对兔子,小兔子长到3个月后每个月又生一对兔子

类似斐波那契数列,每个月兔子对数是前两月兔子对数之和

class hello {
    public static void main(String[] args) {
        int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;
        for(int i = 2; i < arr.length; i++){
            arr[i] = arr[i-1] + arr[i-2];
        }
        for(int i = 0; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/fang19970714/article/details/114152814