数组
1.基础知识
-
缺点:
- 数组定长不可变(复制新数组);
- 不能保存有映射关系的数组;
-
声明方式:
Int[] arr;
Int arr[];[不推荐]
2. 初始化
-
动态初始化:在声明时赋默认值
-
声明
new int[3];
-
赋值
arrr[0]=1;arrr[1]=1;arrr[2]=1;
-
-
静态初始化:在声明时赋值
-
方法一:
new int[]{2,5,8};
-
方法二:必须在声明时初始化
int[] arr = {2,5,8};
-
-
默认值:
声明数组后若不初始化,则赋予默认值;
类型 默认值 int 0 double 0.0 boolean False Integer null
3.使用
-
数组长度
int x = arr.length();
-
数组的编历
for(int i;i<arr.length;i++){ System.out.print(arr[i]); }
-
数组下标越界异常(java.ArrayIndexOutOfBpundsException:N)
当使用和赋值超过数组下标的大小时就会发生数组下标越界异常
4.案例
-
数组的复制:
-
System.arraycopy()
用于将一个数组的部分值复制到一个存在的数组中;
//将数组arr1从0开始的3个元素复制到arr2从1开始的3个位置上 int[] arr1 = {1,2,3,4,5}; int[] arr2 = new int[5]; System.arraycopy(arr1,0,arr2,1,3);
-
Arrays.copyOf()
赋值产生新数组
//用arr1的前n个元素复制出一个新的数组arr2,不够的用默认值补齐,多出来的删除 int[] arr1 = [{1,2,3,4,5}; int[] arr2 = Arrays.copyOf(arr1,n);
-
-
扩容
int[] arr3=Arrays.copyOf(arr,arr.length+1);
-
数组的排序:
-
比较各种方法所需时间的方法
long a = System.curretTimeMillis(); //排序命令 long b = System.curretTimeMillis(); System.out.println(b-a);
-
Arrays.sort(arr);最快//计算升序(用于数组);
-
冒泡排序:从第一个元素开始到倒数第二个元素终止,与剩下的数进行比较,移位
-