java基础--数组简单介绍

数组

  • 数组是引用数据类型,有内存分配问题。
  • 声明并开辟数组:数据类型[] 数组名称 = new 数据类型[长度];
  • 数组静态初始化
简化格式数据类型 数组名称 = {值1,值2,…}
完整格式数据类型 数组名称 = new 数据类型[]{值1,值2,…}

下面看一段关于数组的一段代码:

public class ArrayDemo{
	public static void main(String[] args) {
		int[] x = null ;
		int[] temp = null ; // 声明对象
		x = new int[3] ;
		System.out.println(x.length) ;
		x[0] = 1 ; // 数组第⼀个元素
		x[1] = 2 ; // 数组第⼆个元素
		x[2] = 3 ; // 数组第三个元素
		for (int i = 0; i<x.length ; i++) {
			System.out.println(x[i]) ; // 通过循环控制索引下标更改
		}
		temp = x ; //如果要发⽣引⽤传递,不要出现[]
		temp[0] = 55 ; // 修改数据
		System.out.println(x[0]) ;
	}
}

由上面的代码块可以知道:

  • 数组的访问可以通过索引来进行,即“数据名称[索引]”。访问范围是[0,length)如果超过范围将会报出异常。
  • 当开辟数据空间时,还没有初始化之前,默认为各个类型的默认值。
  • 数组是一个有限的数据集合。数组名称.length会获得数组长度。

数组是引用数据类型了,就一定可以发生引用传递,而现在的引用传递的本质也一定是:同一块堆内存空间可以被不同的栈内存所指向。同一块堆内存被不同的栈内存所指向。
在这里插入图片描述

  • 二维数组
    • 二维数组的实质其实是一个数组的数组。
    • 数组的动态初始化:
         数据类型 对象数组[][] = new 数据类型[行个数][列个数];
    • 数组的静态初始化:
         数据类型 对象数组[][] = new 数据类型[行个数][列个数]{{值, 值,…}, {值, 值,…},…};
    • 二维数组在创建时,必须确定行个数,否则会报错。
public class ArrayDemo {
	public static void main(String args[]) {
		//此时的数组并不是一个等列数组
		int data[][] = new int[][] {
			{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
		//如果在进行输出的时候一定要使用双重循环,
		//外部的循环控制输出的行数,而内部的循环控制输出列数
		for(int i = 0; i < data.length; i++) {
			for(int j = 0; j < data[i].length; j++) {
				System.out.print("data[" + i + "][" + j + "]=" + data[i][j] + "、");
			}
			System.out.println();
		}
	}
}
  • 关于java对数组的支持
    • 实现数组排序:java.util.Arrays.sort(arrayName) ;
    • 实现数组拷贝
      System.arraycopy(源数组名称,源数组开始点,⽬标数组名称,⽬标数组开始点,拷⻉⻓度);
      java.util.Arrays.copyOf(源数组名称,新数组⻓度)

其余的还有很多,可以查看文档:java在线文档

关于数组的面试题目:
力扣题目
牛客需要自己选择有关数组的题目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值