数组的定义
数组声明创建
首先必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法:
dataType[] arrayRefVar; //首选方法
或者
dataType arrayRefVar[];//效果相同,但不是首选方法
Java语言通过new操作符来创建数组,语法如下:
dataType[] arrayRefVar=new dataType[arraySize]
数组的元素是通过索引访问的,数组索引从0开始
获取数组长度 arrays.length
java内存分析:
三种初始化
静态初始化
int[] a={1,2,3};
动态初始化
int[] a=new int[2];
a[0]=1;
a[1]=2;
数组的默认初始化
package com.ljh.array;
public class Demo1 {
public static void main(String[] args) {
int[] arr1={1,2,3,4};
for (int x=0;x<arr1.length;x++){
System.out.println(arr1[x]);
}
int[] arr2=new int[10];
arr2[0]=5;
arr2[1]=6;
System.out.println(arr2[2]);
}
}
数组的四个基本特点
数组对象本身是在堆中的。
数组边界
下标的合法区间:[0,length-1],如果越界就会报错
package com.ljh.array;
/**
* 下标越界
*/
public class Demo2 {
public static void main(String[] args) {
int[] arr={12,23,45};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println(arr[3]);
}
}
ArrayIndexOutOfBoundsException:数组下标越界异常
小结:
数组作为方法参数
public static void printArr(int[] arr){
for (int a:arr){
System.out.println(a);
}
}
数组作为方法返回值
public static int[] reversalArr2(int[] arr){
int[] newArr=new int[arr.length];
for (int x=0,y=arr.length-1;x<arr.length;x++,y--){
newArr[y]=arr[x];
}
return newArr;
}
package com.ljh.array;
import java.util.Arrays;
/**
* 反转数组
*/
public class Demo3 {
public static void main(String[] args) {
int[] arr=new int[]{1, 2, 3, 47, 9, 10};
printArr(arr);
int[] ints = reversalArr(arr);
System.out.println(Arrays.toString(ints));
}
public static void printArr(int[] arr){
for (int a:arr){
System.out.println(a);
}
}
//反转数组
public static int[] reversalArr(int[] arr){
for (int x=0,y=arr.length-1;x<y;x++,y--){
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
return arr;
}
//反转数组
public static int[] reversalArr2(int[] arr){
int[] newArr=new int[arr.length];
for (int x=0,y=arr.length-1;x<arr.length;x++,y--){
newArr[y]=arr[x];
}
return newArr;
}
}
原文:https://www.cnblogs.com/ljhStudy/p/15227471.html