相同数据类型的集合
是引用类型数据 即对象
可以存储基本数据类型 还可以存储引用数据类型
特点:在内存的空间中是连续的
声明方式:(建议使用第一种)
①数据类型 [ ] 数组名称
②数据类型 数组名称 [ ]
创建方式:①int [ ] a = new int[10]; (10为数组长度 一经指定不可更改)
②int [ ] a = new int[ ]{2,4,6,8}; (直接填充内容 同时确定长度)
③int [ ] a = {2,4,6,8}; (隐式创建)
import java.lang.reflect.Array;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
int [] a =new int[10]; //10为数组长度 一经指定不可更改
System.out.println(a); //直接输出a时 输出的是对象在内存中的地址
System.out.println(Arrays.toString(a)); //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
float [] f = new float[10];
System.out.println(Arrays.toString(f)); //[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
double [] d = new double[10];
System.out.println(Arrays.toString(d)); //[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
char [] chars = new char[10];
System.out.println(Arrays.toString(chars)); //[ , , , , , , , , , ]
boolean [] b = new boolean[10];
System.out.println(Arrays.toString(b)); //[false, false, false, false, false, false, false, false, false, false]
String [] s = new String[10];
System.out.println(Arrays.toString(s)); //[null, null, null, null, null, null, null, null, null, null]
}
}
动态赋值:数组索引(就是每一个空间的标号 为整数 最小值为0 最大值为数组长度-1)
import java.util.Arrays;
public class Demo2 {
public static void main(String[] args) {
int [] a = new int[10];
a[0] = 1; //为固定位置赋值
a[1] = 2; //为固定位置赋值
a[2] = 3; //为固定位置赋值
System.out.println(a[2]); //获取固定位置的值
System.out.println(a[10]); //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10(访问数组非法索引)
}
}
数组遍历:
①使用循环生成数组索引 获取每一个位置的值
②增强for循环
原理:int i 每次循环声明一个变量 没循环一次从数组中挨个取出一个元素赋给t
import java.util.Arrays;
public class Demo2 {
int [] b = {1,2,3,4,5};
for (int i = 0; i < b.length; i++) { //数组索引
System.out.println(b[i]);
}
for(int t : b){ //增强for循环
System.out.println(t);
}
}
}
数组排序:
①冒泡排序
思想:每次拿出两个相邻位置的值进行比较 满足条件交换位置
import java.util.Arrays;
public class Demo3 {
public static void main(String[] args) {
int[] a = {2, 7, 4, 9, 1};
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-1-i; j++) {
if (a[j] > a[j + 1]) {
int b = a[j];
a[j] = a[j+1];
a[j + 1] = b;
}
}
}
System.out.println(Arrays.toString(a));
}
}
②选择排序
思想:每次拿出固定位置的值与后面的值进行比较 满足条件交换位置
import java.util.Arrays;
public class Demo3 {
public static void main(String[] args) {
int[] a = {2, 7, 4, 9, 1};
for (int i = 0;i < a.length-1; i++) {
for (int j = i+1; j < a.length; j++) {
if(a[i] < a[j]){
int c = a[j];
a[j] = a[i];
a[i] = c;
}
}
}
System.out.println(Arrays.toString(a));
}
}
扩:IDE中的debug调试功能
①断点:开始调试的位置
②以debug模式启动程序
③几个快捷键: F8--->下一行 F9--->结束调试
二维数组:二维数组(多维数组):数组中的每一个元素都是一个数组
声明:
①数据类型 [ ] [ ] 数组名称
②数据类型 数组名称 [ ] [ ]
创建:
①int [ ] a = new int[a] [b];
a是二维数组的长度,即一维数组的个数
b是一维数组的长度
②int [ ] a = new int[3] [ ];
表示二维数组的长度为3
一维数组为创建 即为空 可分开赋予内容
③int [ ] a = new int[ ] [ ] {{2,4,6,8},{1,2,3},{2,4,5,6,}};
③int [ ] a = {{2,4,6,8},{1,2,3},{2,4,5,6,}};
二维数组的遍历:
public static void main(String[] args) {
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a[i].length-1; j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}



