老生常谈…对于大佬们根本都不用看的博客!
对于像我这种菜鸡还是得一步一步的来!如果有错误请大佬们指点指点!
数组
什么是数组?
数组就是一个装有相同类型数据的有序集合。
数组具有什么特点?
- 数组的长度一旦确定就不能更改了
- 创建数组的时候,内存会给我们一个连续的空间
- 存取元素的速度快,我们可以通过数组的下标直接定位到元素
代码怎么创建数组?
语法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数组[长度]语法的元素默认值是什么?
数组元素类型 | 默认初始值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
引用类型 | 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
空指针异常:数组没有指向堆内存的空间。