活动地址:CSDN21天学习挑战赛
数组就是用来存储一批同种类型数据的内存区域(可以理解成容器)。们可以把它看作是一个类型的所有数据的一个集合,并用一个数组下标来区分或指定每一个
数。

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] arrayRefVar; // 首选的方法
或 dataType arrayRefVar[];
// 效果相同,但不是首选方法
建议使用 dataType [ ] arrayRefVar 的声明风格声明数组变量
Java语言使用new操作符来创建数组,语法如下:
arrayRefVar = new dataType[arraySize];
数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。
获取数组长度:
arrays.length


//1.声明一个数组
int[] myList = null;

//2.创建一个数组
myList = new int[10];

int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
int[] a = new int[2];
a[0]=1; a[1]=2;
public static void main(String[] args) {
int[] a=new int[2];
boolean[] b = new boolean[2];
String[] s = new String[2];
System.out.println(a[0]+":"+a[1]); //0,0
System.out.println(b[0]+":"+b[1]);//false,false
System.out.println(s[0]+":"+s[1]);//null, null
}
下标的合法区间:[0, length-1],如果越界就会报错;
ArrayIndexOutOfBoundsException : 数组下标越界异常!
数组的工具类java.util.Arrays,由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
import java.util.Arrays;
具有以下常用功能:
int[] arr = new int [5];
Arrays.fill(arr,4);//给所有值赋予4
String str = Arrays.toString(arr);//将数组的内容全部打印出来
System.out.print(str);//[4,4,4,4,4]
可以将下标第几位到第几位输出
Arrays.fill(arr,2,4,5);//给第二位(0位开始)到第4位(不包括)赋值5
String str = Arrays.toString(arr);//将数组的内容全部打印出来
System.out.print(str);//[4,4,5,5,4]
int [] intArr = new int[] {4, 0,-1,3}
Arrays.sort(intArr);//输出 [-1,0,3,4]
String [] str = new String [] {"z","a","c","A","C"};
Arrays.sort(str);//[A,C,a,c,z]
Arrays.sort(str,String.CASE_INSENSITIVE_ORDER)
[a,A,c,C,z];
Arrays.sort(str,Collections.reverseOrder());
[z,C,c,A,a]
Arrays.sort(str,String.CASE_INSENSITIVE_ORDER)
Collections.reverse(Arrays.asList(str));
int [] arr = {2,4,,5,7,,1};
Arrays.sort(arr,0,3);//给第0位开始 到 第3位(不包括)排序
String str = Arrays.toString(arr);//Arrays类的toString方法将数组内容输出
System.out.print(str);//[1,2,4,5,7]
3 .比较数组:通过 equals 方法比较数组中元素值是否相等。
int[] arr1 = {2,3,1};
int[] arr2 = {2,3,1};
System.out.print(Arrays.equal(arr1,arr2));//输出 true ,Arrays.equals重写了equals,所以,这里能比较元素是否相等。
// 如果是arr1.equal(arr2),则返回false,因为equal 比较的是两个对象的地址,不是内容。
数组一定是排好序的,找不到元素会输出最后一个位置
int[] arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 36));
//输出:-4 (找不到元素,返回-x,从-1开始数,如题,返回-4)
在区间内查找值
int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,30));
//输出:2 (从0到3位(不包括)找30,找到了,在第2位,返回2)
如果区间内找到,会输出数组最后一个位置
System.out.println(Arrays.binarySearch(arr, 0,3,40));
//输出:-4 (从0到3位(不包括)找40,找不到,从-1开始数,返回-4)
4.截取数组几个元素 Arrays.copeOf(),
int[] arr = {10,20,30,40,50};
int[] arr1 = Arrays.copyOf(arr, 3);
String str = Arrays.toString(arr1); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[10, 20, 30] (截取arr数组的3个元素赋值给新数组arr1)
截取其中的几个元素
int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOfRange(arr,1,3);
String str = Arrays.toString(arr1); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[20, 30] (从第1位(0开始)截取到第3位(不包括))
Keep on going Never give up