一、数组的声明与初始化
1.动态初始化
(1).数据类型[] 数组名称 = new int[元素个数];
int[] array = new int[100];
//此时定义了100个int变量,存储到array数组中
(2).数据类型[] 数组名称 = new int[]{元素值};
int[] arr = new int[]{1.3.5.7};
//定义了一个5个int大小的数组
2.静态初始化
数据类型[] 数组名称 = {元素值};
int[] arr1 = {2,4,6,8};
数组的长度表示:arr.length
范围:[0,arr.length-1]
二、数组的遍历问题
1.取出数组中的每个元素值并打印
for(int i=0;i<arr.length;i++){
System.out.println(arr[i] + "、");
}
2.当只需要访问数组元素而不修改时,可用for-each循环
for(int i : arr){
System.out.print(i + "、");
}
三、转换数组对象
3.1将数组对象 -> String
- 使用JDK提供的工具类
Arrays.toString()
int[] arr = {1,2,3,4,5,6};
String newArr = Arrays.toString(arr);
System.out.println(newArr);
//输出结果:[1, 2, 3, 4, 5, 6]
- 自己实现:将数组转化为字符串
public static String arr2Str(int[] arr){
//将int -> string (字符串和任何数据类型 + )
String ret = "[";
//遍历数组arr,将每个元素取出来进行字符串的拼接(+)
for (int i = 0; i < arr.length; i++) {
ret += arr[i];
//用,进行元素分隔 -> 当前元素不是最后一个
if(i != arr.length - 1){
ret += ",";
}
}
ret += "]";
return ret;
}
3.2实现数组拷贝(全拷贝)
-
使用JDK提供的工具类
Arrays.copyOf() -
自己实现数组的拷贝
/**
* 自己实现一个方法进行数组的拷贝(全拷贝)
*/
public static int[] arrCopy(int[] arr){
//创建一块与arr大小完全相同的数组对象
int[] ret = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
//将原数组arr的每个元素复制给新数组ret
ret[i] = arr[i];
}
return ret;
}
3.3实现数组的部分拷贝
左闭右开区间拷贝
//使用JDK提供的工具类
//自己实现
/**
* 自己实现部分拷贝
*/
public static int[] arrRangeCopy(int[] arr,int startIndex,int endIndex){
int[] ret = new int[endIndex - startIndex];
for (int i = startIndex; i < endIndex; i++) {
ret[i - startIndex] = arr[i];
}
return ret;
}