*阿炮的Java笔记005号*-最基础的数组

142 阅读2分钟

老生常谈…对于大佬们根本都不用看的博客!

对于像我这种菜鸡还是得一步一步的来!如果有错误请大佬们指点指点!

数组

什么是数组?

数组就是一个装有相同类型数据的有序集合。

数组具有什么特点?

  • 数组的长度一旦确定就不能更改了
  • 创建数组的时候,内存会给我们一个连续的空间
  • 存取元素的速度快,我们可以通过数组的下标直接定位到元素

代码怎么创建数组?

语法1:

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

语法2:

int[] arr = new int[]{1, 2, 3};

语法3:

int[] arr = new int[5];

代码怎么访问数组与赋值?

索引访问数组中的元素:

  • 数组名[索引]=值,为数组中的元素赋值。
  • 变量名=数组名[索引],获取数组中的元素。 注意: 索引范围 :[0,数组的长度-1] 。
int[] arr = {1, 2, 3};
arr[1] = 4;
System.out.println(arr[0]);

new数组[长度]语法的元素默认值是什么?

数组元素类型默认初始值
byte0
short0
int0
long0L
float0.0F
double0.0
char'\u0000'
booleanfalse
引用类型null

二维数组

代码如何创建二维数组?

语法1:

int[][] arr = new int[3][2];

语法2:

int[][] arr = new int[][]{{1,2}, {2, 3}, {4, 5, 6}};

语法3:

int[][] arr = {{1,2}, {2, 3}, {4, 5, 6}};

二维数组的行列

arr[行下标][列下标]

Arrays工具如何使用

判断数组相等

public static boolean equals(long[] a, long[] a2)

输出数组内容

public static String toString(long[] a)

填充数组内容

public static void fill(long[] a, long val)

数组排序

//升序排序
public static void sort(int[] a)
//指定位置排序
public static void sort(int[] a, int fromIndex, int toIndex)
//自定义排序
public static <T> void sort(T[] a,int fromIndex, int toIndex,  Comparator<? super T> c)

查找数组的指定元素

//存在返回下标,否则返回-1
public static int binarySearch(long[] a, long key)

注意:数组经常出现的异常

ArrayIndexOfBoundsException

索引越界异常:访问了数组中不存在的索引时发生的异常。

NullPointerException

空指针异常:数组没有指向堆内存的空间。