小白学Java03:数组

数组

在java语言中,数组是一种复合数据类型(引用数据类型)。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。

一维数组

  • 定义一维数组

定义方式:
    1:type arrayName[];
    2:type[] arrayName;(推荐)
  • 初始化一维数组

 静态初始化:
     type[] nameArray = {1,2,3,4};
 动态初始化:
     •写法一:int[] ary1=new int[2];//{0,0}
    	ary1[0]=123;  ary1[1]=456; //通过整型下标访问元素
  	 •写法二:int[] arr = new int[]{1,2,3}

数组的下标和长度:

arrayName[index]   //array数组中的index元素
    数组下标从0开始,最大长度为数组长度减1
    
    Java会进行数组下标越界检查,
    如果下标越界,则报数组下标越界异常
    
 使用数组变量名.length来获取数组元素个数
     如:
         arr.length   

小知识

  • 数组动态初始化的默认值
•整型数组所有元素为0;
•浮点型数组所有元素为0.0;
•布尔型数组所有元素为false;
•字符型默认初始值为空字符,\u0000 ‘ ’
•类类型数组所有元素为null;
  • 数组是一个对象,通过变量名指向堆中的引用

多维数组

  • 多维数组都被看作数组的数组。比如二维数组是一个特殊的一维数组,其每一个元素又是一个一维数组。我们主要以二维数组为例来说明,多维数组与此类似
  • 二维数组的定义方式

•type arrayName[ ][ ];
•type[ ][ ] arrayName;
•type[] arrayName[];
  • 二维数组的初始化

    静态初始化
      在定义数组的同时为数组分配空间。
    
  int  intArray[ ][ ]={{1,2},{2,3},{3,4}}; 
  • 动态初始化
一、直接为每一维分配空间;
    int[][] arr=new int[2][3];//{{0,0,0},{0,0,0};
二、只创建了二维数组对象(每一个一维数组是空的)
    int[][] arr = new int[2][];//{null,null}
    arr[0] = new int[2];
    arr[1] = new int[]{11,22,33};
三、带指定值的动态初始化
	int[][] arr = new int[][]{{11,22},{33,44}};

小知识

数组的长度一旦被确定,便不可以增加或减小,对于数组的扩容和缩容操作都是新建一个数组,然后把旧数组的内容放到新数组中,然后把引用指向旧数组的数组变量名称

数组的属性

  • length:长度、元素个数

int[] i = new int[10];
int length = i.length;  //10

数组的常用方法

  • clone克隆

    创建当前数组的副本,并赋值给一个新的数组
int[] i = new int[] {1,2,3,4,5};
int[] clone = i.clone();
System.out.println(Arrays.toString(i));
System.out.println(Arrays.toString(clone));
  • Arrays.toString(数组) 转化为字符串

    数组名字.toString可能并不能得到我们想要的结果(直接输出数组里的每个元素),这个时候我们需要Arrays.toString(name)
		int[] i = new int[] { 1, 2, 3, 4, 5 };
		System.out.println(i.toString());// [I@7f690630
		System.out.println(Arrays.toString(i));// [1, 2, 3, 4, 5]
  • Arrays.copyOf(旧数组,新长度):实现数组的伪扩容或伪缩容

int[] i = new int[] { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(i));//[1, 2, 3, 4, 5]
int[] copyOf = Arrays.copyOf(i, 10);
System.out.println(Arrays.toString(copyOf));//[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
int[] copyOf2 = Arrays.copyOf(i, 3);
System.out.println(Arrays.toString(copyOf2));//[1, 2, 3]
  • Arrays.soft(数组):实现升序排列

int[] i = new int[] { 1, 23, 13, 954, 51 };
Arrays.sort(i);
System.out.println(Arrays.toString(i));//[1, 13, 23, 51, 954]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值