数组基础
把数组看作是一个同类型变量的集合,在同一个数组中的所有数据都有相同的数据类型,并且使用统一的数组名,通过下标来区分数组中各不同的元素
创建数组
数组的声明格式:
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(); } } }