1、一维数组
初始化
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[]={1,2};
int b[]=new int[]{1,0,2};
// int b[]=new int[3]{1,2,3}; ERROR 要么指定长度要么大括号里初始化数据算长度
int[] c={1,2};
int d[]=new int[10];
}
}
基本类型默认为0,引用类型为null
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[]=new int [2];
String b[]=new String[2];
System.out.println(a[0]); //0
System.out.println(b[0]); //null
}
}
比较数组写for循环去比
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[]={1,2,3};
int b[]={1,2,3};
System.out.println(a.equals(b));//false
System.out.println(judge(a,b));//true
}
public static boolean judge(int a[],int b[])
{
for(int i=0;i<a.length;i++)
{
if(a[i]!=b[i])
return false;
}
return true;
}
}
foreach遍历数组元素
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[]={1,2,3};
for(int i:a)
System.out.print(i+" ");//1 2 3
}
}
基本类型数组不支持自动拆箱装箱,但每一个元素可以
引用类型数组可以赋值的
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[]={1,2,3};
//Object object[]=a; ERROR ,数组不能装箱和拆箱
Object object1=a[0]; //自动装箱成Integer
String str[]=new String[]{"22","11"};
Object b[]=str;
System.out.println(object1.getClass());//class java.lang.Integer
System.out.println(b.equals(str));//true
}
}
2、多维数组
初始化
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[][]={{1,2,3}};
int [][]b={{}};
int c[][]=new int[2][2];
int d[][]=new int[][]{{1,2},{2,3}};
int e[][]={{}};
}
}
遍历:
import com.test.*;
public class Main {
public static void main(String [] argv)
{
int a[][]=new int[][]{{1,2},{2,3}};
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
//1 2
//2 3
}
}
3、可变长数组
如果同时存在其他参数,那么可变长参数只能放在最后
import com.test.*;
public class Main {
public static void main(String [] argv)
{
String str[]=new String[]{"3","2","1"};
arr(str);
}
public static void arr(String ...s)
{
for(String i:s)
System.out.print(i+" ");
//3 2 1
}
}