一、概括
数组相当于是一个容器,可以装载(存储)数据。
特点:
创建后,长度固定(不能增加或者减少容量);
创建后,存储的数据类型固定。
在内存空间中的特点:
连续空间;
在堆中创建;
每个位置有下标(索引),从0开始,到n-1。(总长度-1)
PS:程序在jvm中运行,java程序运行需要耗费电脑内存空间。
二、数组的使用
声明,创建,存取数据。
数据类型[ ] 数组名; (推荐使用这个:中括号写到数据类型后面)
或者 数据类型 数组名[ ];
一、声明:
int [ ] array = new int [10];
ps:后面数据类型要与前面写的定义类型一致。
二、赋值:
数组名[下标] = 值;
array[0] = 2;
array[8] =222;
三、***或者一起写***:
1. 数据类型 [] 数组名 = new 数据类型 [长度]; (推荐)
eg: int [] array = new int [10];
2. 数据类型 [] 数组名 = new 数据类型 [] {元素,元素,元素} ;
eg:int [] array1 = new int []{1,2,3,4,2};
3. 数据类型 [] 数组名 = {元素,元素,元素};
eg: int [] array1 = {1,2,3,4,2};
String[] array2 = new String [3];
double[] array3 = new double [6]; // 各种类型创建方法都一样
使用数组
只会存取;不可越界,不可使用不匹配的数据类型。
取值:数据类型 变量名 = 数组名[下标];
int a = array1[0]; // array1的第1个元素
String b = array2[1]; // array2的第2个元素
double c = array3[5]; // array3的最后一个元素(第6个)
不同数据类型在数组中的默认值:

默认值:
整型(byte short int long):0
浮点型(float double);0.0
String:null
char:‘ ’(一个空格)
boolean:false
数组长度
用“数组名.length获取”

三、控制台输入
1、不限制输入个数:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个数组,用逗号隔开:");
String str = s.next().toString();
String[] arr = str.split(",");
int[] b = new int[arr.length];
for (int i = 0; i < b.length; i++) {
b[i] = Integer.parseInt(arr[i]);
System.out.print(b[i] + " ");
}
}

2、限制输入的长度
System.out.println("请输入三个数:");
int[] c = new int[3];
for (int i = 0; i < c.length; i++) {
c[i] = s.nextInt();
}
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}

next()和nextLine()
next()与nextLine()区别很明确,next() 方法遇见第一个有效字符(不是空格和换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,也就是说使用next()方法获得的是不含空格和换行符的单个字符串。
而使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。


四、数组小技巧
拷贝数组
可以使用for循环,一个一个拷贝
可以使用系统自带的方法System. arraycopy(src, srcPos, dest, destPos, length);
int[] arr = new int[]{ 1, 2, 3, 6, 23 };
int[] arr1 = new int[arr.length];
System.arraycopy(arr, 1, arr1, 0, 2);
// 从arr数组的第一个开始,拷贝两个,到arr1中,arr1从0开始
// System.arraycopy(src, srcPos, dest, destPos, length);
输出数组
显示数组(比如每趟排序都显示一次数组)
可以使用 Arrays.toString(); 该方法返回为字符串型。
int[] a = new int[]{1,23,42,3,2,1,1};
System.out.println(Arrays.toString(a));
String str = Arrays.toString(a);
System.out.println("2:" + str);

数组排序
int[] arr = { 3, 22, 5, 1, 4 };
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
