01-数组

2019-05-24  本文已影响0人  北街九条狗

复习要点

1.数组

1.1声明语法及特点

提示:只能保存一种数据类型,长度固定

提示:数组是引用数据类型,栈内存中保存的是指向堆区的地址,地址上保存着每个元素

// 声明
int []arr = new int[5]; // 默认5个0
int arr[] = new int[5]; // 默认5个0
String str[] = new String[5];// 5个null

int arr[] = new int[]{1,2,3,4,5};// 直接指定元素
int arr[] = {5,4,3,2,1};// 直接指定元素
1.2如何访问数组元素
// 数组的访问需要通过索引(下标)访问,长度为n的数组,下标范围为0-4
int arr[] = {5,4,3,2,1};
System.out.println(arr[0]); // 5
System.out.println(arr[3]); // 2
1.3遍历数组

遍历:逐个访问每个元素

// 例:在控制台打印数组中每个元素
int arr[] = {5,4,3,2,1};
// 1.推荐
for(int num : arr){
    System.out.println(num);
}
// 2.原始
for(int i = 0;i < arr.length;i++){
    System.out.println(arr[i]);    
}
1.4二维数组

数组中存的还是数组

// 假如房子是一个数组,里面装着家具,房子里面还有房子,每个房子里面有自己的家具,这就是二维数组
int arr[][] = new int[5][]; // 保存了5个null
int []arr[] = new int[5][]; // 保存了5个null
int [][]arr = new int[5][]; // 保存了5个null

int arr[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
int arr[][] = {{1,2,3},{4,5,6},{7,8,9}};
1.5二维数组的访问
int arr[][] = {{1,2,3},{4,5,6},{7,8,9}};
System.out.println(arr[0][0]);//1  
System.out.println(arr[1][2]);//6  
System.out.println(arr[2][1]);//8  
1.6二维数组的遍历
int arr[][] = {{1,2,3},{4,5,6},{7,8,9}};
for(int i = 0;i < arr.length;i++){
    for(int j = 0;j < arr[i].length;j++){
        System.out.println(arr[i][j]);
    }
}

注意:下标一旦越界,会抛出数组越界异常ArrayIndexOutOfBoundsException

1.7排序(重点,至少掌握一种)
public class Demo2 {
    public static void main(String[] args) {
        // 数组的排序
        int arr[] = {12,1,55,7,89,32};
        // 1.冒泡排序(必须)
        // 外层循环--一共比较多少轮
//      for(int i = 1;i < arr.length;i++) {
//          // 每一轮比较的次数与第几轮和数组长度有关
//          for(int j = 0;j < arr.length - i;j++) {
//              if(arr[j] > arr[j+1]) {
//                  int temp;
//                  temp = arr[j];
//                  arr[j] = arr[j+1];
//                  arr[j+1] = temp;
//              }
//          }
//      }
//      for(int num : arr) {
//          System.out.print(num+" ");
//      }
        
        // 2.选择排序(非必须)
        for(int i = 0;i < arr.length - 1;i++) {
            for(int j = i + 1;j < arr.length;j++) {
                if(arr[i] > arr[j]) {
                    int temp;
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        for(int num : arr) {
            System.out.print(num+" ");
        }
    }
}

经典练习题

数组的定义及遍历

int arr[]= {5,4,3,2,1};
int max=arr[0];
int min=arr[0];
int sum=0;
for(int i=0;i<arr.length;i++) {
    if(max<arr[i]) {
        max=arr[i];
    }
    if(min>arr[i]) {
        min=arr[i];
    }
    sum=sum+arr[i];
}
System.out.println("平均值是"+(sum/arr.length));
System.out.println("最大值是"+max);
System.out.println("最小值是"+min);

二维数组

上一篇 下一篇

猜你喜欢

热点阅读