数组

数组

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

数组描述的是相同类型的若干个数据,按照一定的先后次序排序组合而成

其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们


数组声明创建

int[] nums;	//	声明一个数组,没有分配空间
nums = new int[10];//在内存里面分配空间

nums[0] =1 ;//赋值

//计算所有元素的和
int sum = 0;
for(int i = 0;i<sums.length;i++){
    sum = sum + nums[i];
}

内存分析

image-20201205105140654

image-20201205105726784

image-20201205105833939

image-20201205105930705

java.lang.ArrayIndexOutOfBoundsException:10

数组下标越界异常。非法索引访问数组时抛出的异常。


三种初始化

  • 静态初始化:创建加赋值
int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
  • 动态初始化:包含默认初始化
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
  • 数组的默认初始化:就是对应下标没有被赋值的,会被赋值默认值(0," ")。

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


null与空字符串的区别

" "有分配内存空间,而null 没有

数组的四个基本特点

  1. 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的
  2. 其元素必须是相同类型,不允许出现混合类型。
  3. 数组中的元素可以是任何数据类型,包括基本数据类型和引用类型。
  4. 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论如何保存原始数据类型还是其他对象类型,数组对象本身是在堆中的

数组的使用

int[] arrays = {1,2,3,4,5}
//增强for
for(int array:arrays){
    //该方法无法取出下标
}
//一个应用
//反转数组
int[] result = new int[arrays.length];
for(int i = 0,j = result-1;i<arrays.length;i++,j--){
    result[j]= arrays[i];
}
return result;
//也有reserve 函数
int[] reserve = reverse(arrays);

  • 普通的For循环
  • For-Each循环
  • 数组作方法入参
  • 数组作返回值

多维数组

image-20201205122452077

数组中是一个数组
int[][] array = {{1,2},{2,3},{3,4},{4,5}}//可以看成四行两列

image-20201205122801851

System.out.println(array[0][0]);
System.out.println(array.length);
System.out.println(array[0].length);

遍历多维数组

for(int i = 0;i<array.length;i++){
    for(int i = 0;j<array[i].length;i++){
        System.out.println(array[i][j]);
    }
}
posted @ 2021-03-02 11:38  PitayaWalk  阅读(15)  评论(0)    收藏  举报