简介
数组是一种数据结构
声明:一般使用int[] a这种方式,相对于int a[],前者将变量和类型分开了。
初始化:长度可以不使用变量如int[] a=new int[n];,当然了长度为0也是可以的。
赋值:如果不指定,就是类型的默认值,数字型是0,布尔型是false.对象的话就是null。数组创建之后,大小是不能改变的。
遍历
1.使用for each
这种方式的好处就是不需要使用数组的下标
//遍历并打印
@Test
public void ssa(){
String[] s= new String[]{"d","d","sd"};
for (String b : s)
System.out.print(b);
}
//打印结果ddsd
2.传统for循环
(略…)
3.Arrays.toString()
当然,如果只是想看一下数组的内容,可以这样做
System.out.println( Arrays.toString(s));
// 打印结果[d,d,sd]
拷贝
1.引用的复制
String[] s= new String[]{"d","d","sd"};
String[] s1=s;
s[1]="ss2";
System.out.println(Arrays.toString(s1));
这样做的话,s和s1的引用都将指向同一块内存地址,改变s,s1也将改变,不是真正的复制。
2.使用Arrays.copy()方法
String[] s= new String[]{"d","d","sd"};
String[] s1=Arrays.copyOf(s, s.length);
s[1]="ss2";
System.out.println(Arrays.toString(s1));
copy底层就是根据反射来创建一个新的对象,该方法第一个参数是源数组,第二个是新数组的长度。使用该方法可以用来增加数组的长度。多余部分取默认值
例如
String[] s= new String[]{"d","d","sd"};
String[] s1=Arrays.copyOf(s, 2*s.length);
s[1]="ss2";
System.out.println(s1.length);//打印结果6
3.自己写算法
当然了可以自己实现复制,利用循环遍历,一个一个的赋值到另一个,比较麻烦,也能达到复制的效果
String[] s= new String[]{"d","d","sd"};
String[] s1=new String[s.length];
for (int i=0;i<s.length;i++) {
s1[i]=s[i];
}
排序
1.Arrays.sort()
该方法对数组内容排序,结果为升序
其他
比较,使用Arrays.equals()方法,若下标相同的元素对应相等,返回true
多维数组
在java中其实就是数组的数组
。多少维就需要嵌套多少个for循环来遍历。比较费劲。
当然了,如果只是想看一下数组的内容,可恶意使用Arrays.deepToString()方法。