数组基础
把数组看作是一个同类型变量的集合,在同一个数组中的所有数据都有相同的数据类型,并且使用统一的数组名,通过下标来区分数组中各不同的元素
创建数组
数组的声明格式:
ArrayType ArrayName[ ];
ArrayType [ ] ArrayName;// 适用于对多个数组进行声明
例如:int array[ ];
int [ ] array1,array2;
分配内存空间:使用new为声明的数组进行空间分配 array1 = new int[5];
数组的初始化
使用new的方式或使用大括号的方式
int array1 [ ] = new int[ ] { 1,2,3,4,5,6,7,8}; 先创建一个数组,然后将括号里的值赋值给这个数组
int array [ ] = {1,2,4,5,6,7}将括号里的值赋值给一个创建好的数组
通过array.length方法获得数组的长度,即数组名.length
数组的使用
在进行数组复制时,可以直接将一个数组变量复制给另一个,这时候数组类型变量都会指向同一个数组。复制语句:array1 = array2元素
数组的排序
选择排序:对长度i的数组进行i遍遍历,第一遍遍历出最大的数组元素和数组第一个元素交换,第二遍将最大的和第二个元素交换,遍历n遍后,就会将所有的元素从大到小排序。
package ch01;
public class ChooseSortTest {
public static void main(String[] args) {
// 创建一个需要进行选择排序的数组
int a[] = new int[] { 1, 3, 5, 2 };
System.out.println("需要排序的数组:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
int key;// 记录选择排序开始时位置的值
int index;// 记录选择排序开始比较时的位置
int temp;// 完成将最小值交换到第一个位置时的中间量
// 进行选择排序:最后数值从小到大排列
// 先从第一个位置a[0]开始,以此类推
for (int i = 0; i < a.length; i++) {
index = i;
key = a[i];
for (int j = i; j < a.length; j++) {
if (a[j] < key) { // 直到找到比第一个位置小的数
index = j; // 记录此时小数的位置
key = a[j]; // 记录此时小数的值
}
}// 与第一个位置的数进行交换
temp = a[i];
a[i] = a[index];
a[index] = temp;
}
// 输出排序好的数组
System.out.println("排序后的数组:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
冒泡排序:
package ch01;
public class MaopaoTest {
public static void main(String[] args) {
// 先创建一个需要排序的数组
int test[] = new int[] { 2, 4, 5, 6, 1 };
System.out.println("需要排序的数组:");
// 依次遍历输出
for (int i = 0; i < test.length; i++) {
System.out.print(test[i] + " ");
}
int temp;// 定义一个冒泡时的中间位置
System.out.println();
// 进行冒泡排序:由小到大
for (int i = 0; i < test.length; i++) {
for (int j = i; j < test.length; j++) {
if (test[j] < test[i]) {
temp = test[i];
test[i] = test[j];
test[j] = temp;
}
}
}
System.out.println("进行冒泡排序后的数组:");
for (int i = 0; i < test.length; i++) {
System.out.print(test[i] + " ");
}
}
}
多维数组
是指使用多个索引来访问数组元素,它适用于表示表或其他比较复杂的内容
声明一个多维数组,需要一组括号来制定它的下标:int[ ][ ] Two = new int [5][5]
声明完成后,就需要对数组进行赋值:Two = {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} }
对多维数组也可以使用for循环进行:
<span style="white-space:pre"> </span>for(int i=0;i<Two.length;i++){
<span style="white-space:pre"> </span>for(int j=0;j<Two[i].length;j++)
<span style="white-space:pre"> </span>Two[i] [k] = k++;
<span style="white-space:pre"> </span>}
实例:package ch01;
public class TwoTest {
public static void main(String[] args) {
int[][] Two = new int[3][3];
int k = 1;
for (int i = 0; i < Two.length; i++) {
for (int j = 0; j < Two[i].length; j++)
Two[i][j] = k++;
}
System.out.println("输出Two数组");
for (int i = 0; i < Two.length; i++) {
for (int j = 0; j < Two[i].length; j++) {
System.out.print(Two[i][j] +" ");
}
System.out.println();
}
}
}