Java学习-Day06(数组)

数组

数组可以存放多个同一类型的数据,数据也是一种数据类型,是引用类型。即:数组就是一组数据。

array.length => 数组长度

  1. 动态初始化
   int  a[] = new  int [5];
  1. 动态初始化
   int a[];
   //或者
    int[] a;
   a = new int [10];
  1. 静态初始化
   int a[] = { 1,2,3,4,5,6,7,8,9 };

相当于先new再赋值

注意事项和细节:

  • 数组是多个相同类型数据的组合,实现对这些数据的统一管理(类型自动转换也可以,int->double)

  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用

  • 数组创建后,如果没有赋值,有默认值;

int/short/byte/long: 0

float/double: 0.0

char: \u0000

boolean: false

String: null

  • 使用步骤:声明,赋值,使用

  • 数组的下标是从0开始

  • 数组下标必须在指定范围内使用,否则报:下标越界异常

  • 数组属于引用类型,数组型数据是对象

数组赋值机制:

  1. 基本数据类型赋值,这个值就是具体的数据,而且相互不影响(值拷贝)

  2. 数组在默认情况下是引用传递,赋的值是地址 (引用传达)

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

   int[] a2 = a1;

改变数组a2的值也会改变a1

jvm内存:

  • 方法区

在这里插入图片描述

数组逐值拷贝

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

int[] a2 = new int [a1.length];

用for循环逐个赋值

数组扩容

声明一个新数组,再赋值各元素的值,效率极低

排序

内部排序和外部排序

冒泡排序法

查找

顺序

二分

二维数组

int[][] [] [] arr = { { },{ } } ;

相当于一个数组元素是一维数组的一维数组

arr.length = 二维数组的行数

arr[i].length = 二维数组的列数

在这里插入图片描述

  1. 动态初始化
   int[] [] arr = new int [10] [10];
  1. 动态初始化
   int[] [] arr ;

   arr = new int [10] [10];
  1. 列数不确定

    每一行的元素个数可以不一样

   int[] [] arr = new int [10] [];

   //二维数组有三个一维数组的元素,但是一维数组还没有开空间

   for( int i = 0; i < arr.length ; i++){

   ​		arr[i] = new int [i + 1];//给每个一维数组开空间,如果没开,那么arr[i]就是nullfor( int j = 0;j< arr[i].length;j++){

   ​		arr[i] [j] = i  + 1;		//赋值

   }

   }
  1. 静态初始化
   int[] [] arr = { { 123}{ 45 }{ 6 } };

二维数组细节

  1. 一维数组声明 int[] x 或者 int x[]
  2. 二维数组声明 int[] [] x 或者 int [] y[] 或者 int y[] []
  3. 二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同也可以不同,不同的话叫做列数不等的二维数组

练习题

  1. 01010

  2. blue

  3. 1

    3

    5

    7

  4. a,a

    z,z

    韩,韩

    c,c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚来舟Mango

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值