1、数组:存储在连续内存位置的单一类型的数据的集合。数组的下标/索引:数据在数组里面的位置,从0开始。
2、一维数组:
(1)、声明和使用一维数组
//声明数组
int[] number1;//未分配内存的数组,不能直接使用
int[] number2=new int[10];//声明数组时可指定数组的长度
//向数组赋值,说明数据存放的位置
number2[0]=10;//向number2数组第一个元素赋值为10
String[] names={"12","22","32"};//声明数组时直接赋值
System.out.println(names[2]);//使用数组元素时,只需要说明数组的名称和元素对应的下标
(2)、遍历一维数组:顺序遍历
for(int i=0;i<names.length;i++)
System.out.println(names[i]);
(3)、for..eath循环:不强调顺序,只强调每一个都循环一遍;类型与数组一样;如下:names代表集合
for(String s:names)//将names数组每个字符串类型的元素都循环一遍,每次都暂存在s变量里
{
System.out.println(s);
}
3、二维数组:分为多行多列
(1)、声明和使用二维数组
int[][] s1;
int[][] s2=new int[2][3];//声明一个2行3列的数组
int[][] s3=new int[2][];//也可以不说明数组的列数
String[][] s4={{"12","22","32"},{"13","23","33","43"},{"14","24"}};//声明二维数组,并赋初值
//二维数组的赋值
s2[0][0]=3;
(2)、遍历二维数组
for(int i=0;i<s4.length;i++)//s4.length代表行数
{
for(int j=0;i<s4[i].length;j++)//s4[i].length代表每一行对应的数组的长度
{
System.out.print(s4[i][j]);
}
System.out.println();
}
(3)、for..eath循环遍历二维数组:
for(String[] ss:s4)//字符串类型的数组
for(String s:ss)
{
System.out.println(s);
}
4、举例:
(1)、在已经排好序的数组里面,插入到一个数
int[] n = new int[6];
Random r = new Random();// 随机数类,用来生成随机数
for (int i = 0; i < n.length - 1; i++) {
n[i] = r.nextInt(100);// 随机生成0-99的整数
}
// 排序的API
Arrays.sort(n, 0, 5);// 对索引0-4的数据进行排序
int h = 20;
n[5] = 20;// 把新插入的数放到数组的最后一位
for (int i = 0; i < n.length; i++) {
if (n[i] > n[n.length - 1]) {
int t = n[n.length - 1];
for (int j = i + 1; j < n.length; j++)
n[j] = n[j - 1];
n[i] = t;
break;
}
}
(2)、对数组的数据进行倒序排列
for(int m=0;m<names.length/2-1;m++)
{
String temp=names[m];
names[m]=names[names.length-1-m];
names[names.length-1-m]=temp;
}