1.数组的定义
int[] a;
int a[];
两种方式(当然类型可以是基本数据类型,也可以是引用类型咯)
2.数组的初始化
int[] a = {1,45,2,3}; //基本数据类型
Man[] mans = {new Man(),new Man().new Man()}; //引用类型
int[] a = new int(2); //动态的初始化,给数组分配两个空间
3.数组的默认初始化
数组是对象,他的元素相当于对象的属性;因此每个元素也按照属性的方式被默认初始化。
int a2[] = new int[2]; //默认值是0,0
boolean b[] =new boolean[2]; //默认值是 false,false
String s[] = new String[2]; //默认值是 null,null
4.数组常见的两种遍历方式
(1)通过for循环,依次通过数组的下标 【0,length-1】,通过下标遍历数组中的元素,期间可以读取值
也可以修改值
(2)增强for循环:for-each专门用来读取数组或容器中所有的元素
for (int a1:a){
System.out.println(a1);
}
for-each
增强for
循环在遍历数组过程中不能修改数组中某元素的值.for-each
仅适用于遍历,不涉及有关索引(下标)的操作。
5.数组的拷贝
System.arraycopy(object src,int srcpos,object dest, int destpos,int length)
该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length 参数指定 将src数组的多少个元素赋给dest数组的元素
String[] s = {"阿里巴巴","华为","字节跳动","京东","美团"};
String[] sBak = new String[6];
System.arraycopy(s,0,sBak,0,s.length);
for (int i = 0 ;i<sBak.length;i++){
System.out.print(sBak[i]+"\t");
}
6.java,util.Arrays类
这是一个工具类,里面包含了很对对数组进行操作的方法
(1)Arrays.toString(数组) 把目标数组全部输出出去
int a[] = {1,2};
//把目标数组输出
System.out.println(Arrays.toString(a));
//此处的Arrays.toString()
方法是Arrays
类的静态方法,不是Object
的toString()
方法。
(2)Array.sort(数组) 对数组进行排序
int a[] = {1,2};
int b[] = {15,635,231,5,54,489};
//把目标数组输出
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
Arrays.sort(b); //对数组进行排序
System.out.println(Arrays.toString(b));
(3)Arrays.binarySearch(数组,值) 对sort()以后的数组进行二分查找法,并返回他的索引,如果没有该数据,就会返回一个负数!
//排序以后使用二分查找
System.out.println("该元素的索引为:"+Arrays.binarySearch(b,635) );
(4)Arrays.fill(数组,起始下标,终止下标,替换成什么); 把数组中的某一个前闭后开区间的每一项全部替换为目标数值
Arrays.fill(b,2,4,100);
System.out.println(Arrays.toString(b));