1.一维数组
变量概念:一种存储空间的表示 数组概念:一组类型相同的连续的存储空间的表示 数组的特性 //1.长度 固定 //2.不可变 //3.下表索引:0~array.length-1 : 如果超出范围会报错★异常 优点: 1、类型相同 2、连续:遍历 缺点 1.类型相同:无法考虑不同类型多个值的存储 2.连续:插入,移除繁琐使用数组四步骤
1.声明 xxx[] array; 2.分配空间 array = new xxx[int LENGTH]; 3.赋值 arry[int INDEX]= VALUE; 4.使用 System.out.println(array[int INDEX]);数组的静态初始化:
int[] arr2 = {5,7,9};数组的静态初始化:
创建一个长度为5的数组 int[] arr l= new int[5];数组的遍历:
public class Test01 { public static void main(String[] args) { int[] arr = {8,9,6,12,14,5,2}; for(int i = arr.length-1;i>=0;i--){ System.out.print(arr[i]+"\t"); } } }数组指定位置插入
Scanner input = new Scanner(System.in); System.out.print("请输入想插入的位置:"); int pos = input.nextInt(); // position=位置 char[] arr = {'f','e','a','g','k','m','x',(char)0}; char t = 'y'; for(int i = arr.length-1;i>pos;i--){ arr[i] = arr[i-1]; } arr[pos] = t; System.out.print("\n---------"); for(char c: arr){ System.out.print(c+"\t"); }//顺序插入:插入有有序
Scanner input = new Scanner(System.in); char[] arr2 = {'f','e','a','g','k','m','x',(char)0}; char t2 = input.next().charAt(0); int i = arr2.length-2; for(;i>=0;i--){ if(t2<arr2[i]) { }else{ break; } } arr2 [i+1] = t2 ; for (char c : arr2) { System.out.print(c+"\t"); }数组排序:
(一) 冒泡排序
int[] arr = {3 , 68 ,55 ,6 ,45 ,20, 4 }; for(int i= 0 ,t; i < arr.length -1; i++){ for (int j = 0; j < arr.length-1-i; j++) { if (arr[j]>arr[j+1]) { t = arr[j]; arr[j] = arr[j+1]; arr[j+1] = t; } } }for (int i:arr){ System.out.println(i); }(二)选择排序
int[] arr = {55, 4, 55, 6, 45, 8, 68,}; for (int i = 0, maxIx, maxValIx, t; i < arr.length - 1; i++) { maxValIx = 0; maxIx = arr.length - 1 - i; for (int j = 1; j <= maxIx; j++) { if (arr[maxValIx] < arr[j]) { maxValIx = j; } } if (maxIx != maxValIx) { t = arr[maxIx]; arr[maxIx] = arr[maxValIx]; } } for (int i : arr) { System.out.println(i); }(三)插入排序
int[] arr = {3, 68, 55, 6, 45, 20, 4,}; for (int i = 1, t, j; i < arr.length; i++) { t = arr[i]; for (j = i - 1; j >= 0 && arr[j] > t; j--) { arr[j + 1] = arr[j]; } arr[j + 1] = t; } for (int i : arr) { System.out.print(i+"\t"); } } }