JavaSE数组

Java 数组


一、数组介绍

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

  • 每一个数据都是一个数组元素,可以通过下标进行访问。

  • 下标从 0 开始。


二、创建数组

  1. 声明数组变量

    首选:dataType[] arrayName;

    dataType arrayName[];

  2. 使用 new 创建数组,并指定长度

    dataType[] arrayName = new dataType[arraySize];

  3. 通过下标对数组元素进行赋值

    arrayName[index] = data;

  4. 获取数组的长度

    arrayName.length

public class Demo {
  public static void main(String[] args) {
    int[] nums;  // 1.声明int类型的数组
    
    nums = new int[10];  // 2.创建数组,长度为10
    
    System.out.println("数组长度:" + nums.length);
    
    // 3.给数组元素赋值
    for (int i = 0; i < 10; i++) {
      nums[i] = i+1;
      System.out.println(nums[i]);
    }
  }
} 

三、数组初始化

1. 静态初始化

// 静态初始化包括:创建 + 赋值
int[] a = {1,2,3,4,5};

2. 动态初始化

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

3. 默认初始化

数组是引用类型,经过分配空间后,每个元素都被隐式初始化。

// 默认初始化
int[] b = new int[10]; // 此时数组 b 中的所有元素的值被初始化为 0

四、数组特点

  • 数组的长度是确定的,一旦被创建,长度是不可以改变的
  • 其元素必须是相同类型的,不允许出现混合类型!
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
  • 数组属于引用类型,也是对象,每个元素相当于成员变量。
  • 无论数组保存的是基本类型数据还是其它对象类型数据,数组本身存在于堆中

数组的边界问题

  • 数组的下标合法区间:[0, length-1],一旦越界,就会报错:

    ArrayIndexOutOfBoundsException: 越界下标值


五、数组使用

1. 普通 for 循环

public static void main(String[] args) {
  int[] array = {1,2,3,4,5};
	// 打印全部数组元素
	for (int i=0; i < array.length; i++) {
  	System.out.println(array[i]);
	}
}

2. for-each 循环

public static void main(String[] args) {
  int[] array = {1,2,3,4,5};
  
  // 打印全部数组元素
  for (int x : array) {
    System.out.println(x);
  }
}

3. 数组作为参数

// 遍历数组,数组作为参数
public static void printArray(int[] array) {
  for (int i : array) {
    System.out.print(i);
  }
}

4. 数组作为返回值

// 反转数组,数组作为返回值
public static int[] reverseArray(int[] array) {
  int length = array.length;
  int[] newArray = new int[length];
  
  for (int i = 0; i < length; i++) {
    newArray[i] = array[length-1-i];
  }
  
  return newArray;
}

六、多维数组

多维数组中的每一项仍是一个数组。

二维数组可以形成一个矩阵。

了解即可,并不常用。

// 定义一个3行5列的二维数组(矩阵)
int[][] a = new int[3][5];

七、Arrays 类

java.util.Arrays

数组对象本身没有什么方法能用,但是,API 提供了一个可供我们使用的工具类 Arrays,从而可以对数组对象进行一些基本的操作。

Arrays 类中的方法都是 static 修饰的静态方法,所以可以直接使用类名进行调用。

Arrays 类中的常用方法:

  • 给数组赋值:fill()
  • 对数组排序:sort(),升序
  • 比较数组:equals(),比较数组中的元素值是否相等
  • 查找元素:binarySearch(),对排序好的数组进行二分查找
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值