zoukankan      html  css  js  c++  java
  • Java学习之==>数组【array】

    一、定义数组

    /**
     * 一维数组定义
     *
     * 为数组插入元素
     */
    public void case1() {
      // 声明
      int[] arr1;
    
      // 声明+初始化
      int[] arr2 = new int[3];
      // 为数组赋值
      arr2[0] = 1;
      arr2[1] = 2;
      arr2[2] = 3;
    
      // 声明+静态初始化,arr3和arr4一样
      int[] arr3 = new int[]{1, 2, 3, 4, 5};
      int[] arr4 = {1, 2, 3, 4, 5};
    }

    二、数组的遍历

    /**
     * 一维数组的访问&遍历
     */
    public void case2() {
      int[] arr = new int[]{1, 2, 3, 4, 5};
    
      // 普通for循环
      for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
      }
    
      // foreach,  增强for循环
      for (int num : arr) {
        System.out.println(num);
      }
    
      // 第三种方式,jdk1.8支持该种方式
      Arrays.stream(arr).forEach(System.out::println);
    }

    三、二维数组

    /**
     * 二维数组的定义,初始化,访问,遍历
     */
    public void case3() {
      
      // 声明
      int[][] arr1;
    
      // 声明+初始化
      int[][] arr2 = new int[3][2];
      arr2[0][0] = 1;
      arr2[0][1] = 1;
    
      // 声明+静态初始化,3*3
      int[][] arr3 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    }
    
    /**
     * 二维数组的遍历
     */
    public void case4() {
    
      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]);
        }
      }
    
      // 第二种方式
      for (int[] ints : arr) {
        for (int i : ints) {
          System.out.println(i);
        }
      }
    }

    四、总结

    定义

    • 多个相同数据类型的数据按着顺序排列在一起组成的结构

    属性

    • 名称: 存储数组在内存中的地址
    • 索引: 每个元素在数组中都有唯一的位置用于定位元素
    • 元素: 数组中的每一个数据,即为元素
    • 长度: 即数组中元素的个数

    特点

    • 元素有序排列
    • 内存中空间连续
    • 属于引用数据类型

    注意

    • 长度一旦指定即不可修改

    五、练习

    1、定义一个整型数组,找最大的元素

    /**
     * 数组练习:定义一个整型数组,找最大的元素
     */
    public void case1(){
      int[] arr = new int[10];
      for (int i=0;i<10;i++){
        arr[i] = i;
      }
      System.out.println(Arrays.toString(arr));
      int max = arr[0];
      for (int j=0;j<arr.length;j++){
        if (arr[j] > max){
          max = arr[j];
        }
      }
      System.out.println(max);
    }

    2、定义一个二维数组,求所有元素的和

    /**
     * 数组练习:定义一个二维数组,求所有元素的加和
     */
    public void case2(){
      // 声明和初始化一个二维数组
      int[][] arr = new int[5][3];
      // 生成一个二维数组
      for (int i=0;i<5;i++){
        for (int j=0;j<3;j++){
          arr[i][j] = i + j;
          System.out.print(arr[i][j]+" ");
        }
      }
      // 循环二维数组的每个元素然后相加
      int sum = 0;
      for (int i=0;i<arr.length;i++){
        for (int j=0;j<arr[i].length;j++){
          sum += arr[i][j];
        }
      }
      // 换行
      System.out.println();
      System.out.println(sum);
    }

    3、往数组指定位置插入/删除一个元素

    /**
     * 往数组指定位置插入一个元素
      */
    int[] insertarray(int[] arr, int index, int value){
    
      int[] newArr = new int[arr.length + 1];
      for (int i = 0; i < arr.length; i++) {
        newArr[i] = arr[i];
      }
      for (int i = newArr.length - 1; i > index; i--) {
        newArr[i] = newArr[i - 1];
      }
      newArr[index] = value;
      arr = newArr;
    
      return arr;
    }
    
    /**
     * 删除数组中指定位置的元素
     */
    int[] deletearray(int[] arr, int index){
    
      int[] newArr = new int[arr.length - 1];
      for (int i = 0; i <= arr.length - 1; i++){
        if (i < index){
          newArr[i] = arr[i];
        }
        else if (i > index){
          newArr[i-1] = arr[i];
        }
      }
      return newArr;
    }
  • 相关阅读:
    WM_CHAR消息分析
    数据库OleDbConnection对象参考
    数据库使用Command对象进行数据库查询
    如何在VBNET中使用调试输出类Debug和Trace
    数据库与数据库连接
    数据库ADONETOleDbDataReader对象参考
    VBNET运行时处理对象事件(AddHandler和RemoveHandler)
    防火墙分类简述(班门弄斧了)
    杀毒防护类软件的组合转帖
    数据库ADONETOleDbCommand对象参考
  • 原文地址:https://www.cnblogs.com/L-Test/p/11350781.html
Copyright © 2011-2022 走看看