数组

数组

数组是相同类型数据的有序集合

基本特点

  1. 数组对象本身是在堆中的
  2. 长度是确定的,一旦被创建,大小就是不可以改变的
  3. 元素必须相同类型,不允许出现混合类型
  4. 元素可以是任何数据类型
  5. 数组变量属于引用类型,数组也可以看成是对象,每个元素相当于该对象的成员变量

数组的声明

  1. 类型[ ] 数组名

    首选

    int[] nums;
    
  2. 类型 数组名[ ]

数组的定义

java语言用new操作符来创建数组

//接上
nums = new int[10];

//二合一
int[] nums = new int[10];

三种初始化

静态初始化

声明 + 赋值

int[] nums={1,2,3};

动态初始化

包含默认初始化

int[] nums = new int[10];
a[0] = 1;
a[1] = 2;

默认初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化

数组的使用

For—Each

int[] arr = {1,2,3,4,5};
//输入arr.for会快捷生成以下
for(int i:arr){

}

反转数组

public int[] reverse(int[] arr) {
        int[] result = new int[arr.length];
        for(int i = arr.length-1;i>=0;i--){
            result[result.length-i-1] = arr[i];
        }
        return result;
    }

多维数组

public static void main(String[] args) {
        int[][] a={{1,2,3},{4,5,6},{7,8,9}};
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
    }

内存分析

  • 存放new的对象和数组
  • 可以被所有线程共享,不会存放别的对象引用

  • 存放基本变量类型(包含这个基本类型的具体数值)
  • 引用对象的变量(会存放这个引用在堆里面的具体地址)

方法区

  • 可以被所有的线程共享
  • 包含了所有的class和static变量

image-20240715111458816

Arrays类

打印数组元素:toString

int[] a = {1,2,3,4};
Arrays.toString(a);
//返回一个String
System.out.println(a);
//out:[1, 2, 3, 4]

填充:fill

		//接上
		Arrays.fill(arr,0);
        a = Arrays.toString(arr);
        System.out.println(a);

冒泡排序

两层循环,外层冒泡轮数,里层依次比较

  1. 比较数组中,两个相邻的元素,如果第一个数比第二个数大,则交换
  2. 每一次比较,产生一个最大,或最小的数字
  3. 下一轮则可以少一次排序
  4. 依次循环,直到结束
public static void bubbleSort(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
        for (int j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}
posted @ 2024-07-15 22:04  SyzTak  阅读(10)  评论(0)    收藏  举报