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");
}
}
}