数组(Array)
简介
一、数组
数据类型[ ] 数组名 = new 数据类型[长度];
数据类型 数组名[ ] = new 数据类型[长度];
//定义可以存3个整数的数组容器
int[] arr = new int[3];
//初始化数组,为arr添加数据
int intValue = arr [5,4,3];
//或者给一部分赋值,后面的值默认为0
//数据类型不同,默认值不同
//其他数据类型也可如此
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
//定义整数1,2,3,4,5的数组储存容器。
int[] arr = new int[]{1,2,3,4,5};
//其他数据类型也可如此
省略格式(声明的同时赋值):数据类型[] 数组名 = {元素1,元素2,元素3…};
//定义整数1,2,3,4,5的数组储存容器。
int[] arr = {1,2,3,4,5};
//其他数据类型也可如此
1、如果使用静态方式创建数组,那么系统会根据元素的个数自动计算数组的长度
2、静态方式创建数组右边的中括号里面不能写长度
3、静态方式的省略格式创建数组不能先声明后赋值,只能声明的同时直接赋值
补充
1. 直接给每个元素赋值
int array[4] = {1,2,3,4};
2. 给一部分赋值,后面的全部为0
int array[4] = {1,2};
3. 由赋值参数个数决定数组的个数
int array[] = {1,2};
二、下标
在数组定义并初始化过后,他内部的元素并不是混乱的,他们内部的元素存在各自的位置,这里我们称之为下标
//我们先定义一个数组
String array[] = {"One","Two","Three","Four"};
下标
与日常生活计算位置不同,他是从零开始
,也就是4个元素
有4个下标
,分别是0
,1
,2
,3
,如下:
下标位置 | 元素 |
---|---|
0 | One |
1 | Two |
2 | Three |
3 | Four |
//根据下标输出
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
//输出结果为:One
// Two
// Three
// Four
三、元素操作
针对元素的操作,我们可以用到
java.util.Arrays
API参考链接:跳转至Arrays
对数组元素
进行替换
等操作。
@Test
void test7(){
int [] arr = {1,2,3,4};
System.out.println("替换数据前:arr:[ "+ arr[0] + "," + arr[1] + "," + arr[2] + "," + arr[3] + "]");
Arrays.fill(arr,1000);
System.out.println("替换数据后:arr:[ "+ arr[0] + "," + arr[1] + "," + arr[2] + "," + arr[3] + "]");
}
四、二维数组
二维数组初始化
数据类型 数组名 [ ][ ] = new 数据类型[x][y]
数据类型 [ ][ ] 数组名 = new 数据类型[x][y]
数据类型 [ ] 数组名 [ ] = new 数据类型[x][y]
可以理解为x行y列
//数据类型 数组名[][] = new 数据类型[x][y]
int arr_1[][] = new int[3][2];
//数据类型[][] 数组名 = new 数据类型[x][y]
int[][] arr_2 = new int[3][2];
//数据类型[] 数组名[] = new 数据类型[x][y]
int[] arr_3[] = new int[3][2];
数据类型 [ ][ ] 数组名 = {{元素1,元素2…},{元素1,元素2…},{元素1,元素2…}…};
//数据类型[][] 数组名 = {{元素1,元素2,...}, {元素1,元素2,...}, ...};
int[][] arr_4 = {{1,2,3}, {4,5}, {5,6,7,8}};
可以为空,但是没有意义,因为这样写这个数组就不能用了。再赋值的话就会报错。
设置长度时后面括号可以为空,但是没有意义,赋值的话就会报错。
@Test
void test8(){
int[][] arr= new int[][]{{11, 22, 33, 44}, {1, 2, 3}};
for(int i=0;i<arr.length;i++){
for (int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
根据输出结果排列方式,以及数组定义时候的位置,我们可以理解
{11, 22, 33, 44}第一行
{1, 2, 3}第二行
元素11,元素1第一列
元素22,元素2第一列
元素33,元素3第一列
元素44第一列
五、 多维数组
多维数组可以看成数组中的数组,即数组中存储的类型为数组即是多维数组,在二维数组的基础上多加若干组数据即可,定义方式也相差无几。
六、 Java 容器
在 Java 语言中,提供了一个可以支持动态扩容的数组容器:ArrayList。ArrayList就是动态数组,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处
参考
java.util.ArrayList
API参考链接:点击跳转至ArrayList
方法 | 说明 |
---|---|
boolean add(E e) | 将指定的元素添加到此列表的尾部。 |
void add(int index, E element) | 将指定的元素插入此列表中的指定位置。 |
boolean addAll(Collection extends E> c) | 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。 |
boolean addAll(int index, Collection extends E> c) | 从指定的位置开始,将指定 collection 中的所有元素插入到此列表中 |
void clear() | 移除此列表中的所有元素。 |
Object clone() | 返回此 ArrayList 实例的浅表副本。 |
boolean contains(Object o) | 如果此列表中包含指定的元素,则返回 true。 |
void ensureCapacity(int minCapacity) | 如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。 |
E get(int index) | 返回此列表中指定位置上的元素。 |
int indexOf(Object o) | 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。 |
boolean isEmpty() | 如果此列表中没有元素,则返回 true |
int lastIndexOf(Object o) | 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。 |
E remove(int index) | 移除此列表中指定位置上的元素。 |
boolean remove(Object o) | 移除此列表中首次出现的指定元素(如果存在)。 |
protected void removeRange(int fromIndex, int toIndex) | 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 |
E set(int index, E element) | 用指定的元素替代此列表中指定位置上的元素。 |
Object[] toArray() | 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。 |
T[] toArray(T[] a) | 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。 |
void trimToSize() | 将此 ArrayList 实例的容量调整为列表的当前大小。 |
记得点赞!!!!!!!!!!