zoukankan      html  css  js  c++  java
  • 数组知识点总结

    一,数组的特点:

    1. 数组是有序排列的;
    2. 数组属于引用类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
    3. 创建数组对象会在内存中开辟一整块连续的空间;
    4. 数组一旦初始化完成,其长度就确定了;

     

      二, 1,数组的声明和初始化:

    •      静态初始化:数组的初始化和数组元素的赋值操作同时进行;

    一维数组:

    int[] ids;
    ids=new int[]{1001,1002,1003,1004};

     二维数组:

    int[][] arr1=new int[][] {{1,2,3},{4,5},{6,7,8}};
    •     动态初始化:数组的初始化和数组元素的赋值操作分开进行;

    一维数组:

    String[] names=new String[5];

     二维数组:(中括号放在数组名后面也可以)

    String[][] names=new String[5][2];//初始化方式一
    String[][] names=new String[5][];//初始化方式二

    2,调用数组指定位置的元素:通过角标方式;

    3,获取数组的长度:借助于length属性;

    4,如何遍历数组元素:

    for(i=0;i<names.length;i++){
    System.out.println(i)}
    int[][] arr1=new int[][] {{1,2,3},{4,5},{6,7,8}};
    for(int i=0;i<arr1.length;i++){
         for(int j=0;j<arr[i].length;j++){
    }
    }

    5,数组元素的默认初始化值:

          一维数组:

    • 数组元素是整型:0;
    • 数组元素是浮点型:0.0;
    • 数组元素是char型:0或'u0000',而非‘0’;
    • 数组元素是布尔型:false;
    • 数组元素是引用类型时:null

            二维数组:

      规定:二维数组分为外层数组的元素,内层数组的元素;

                                     int array[][]=new int[4][3];

                                     外层元素:array[0],array[1]等

                                     内层元素:array[0][1],array[1][2]等

    针对于初始化方式一:外层元素的初始化值为:地址值;

                                        内层元素的初始化值为:与一维数组初始化情况相同

    针对于初始化方式二:外层元素的初始化值为:null;

                                        内层元素的初始化值为:不能调用,否则出错。

    6,数组的内存解析:(内存的简化结构)

     三,一维数组练习题1

    //单间短期出租四个月,550元/月(水电费公滩,网费35/月,屋内均是IT行业人士,喜欢安静,
    //所以要求来租着最好是同行,联系方式如下:
    public class ArrayTest {
        public static void main(String args[]) {
        int[] arr=new int[] {2,9,6,0,5,7,1};
        int[] index=new int[] {6,5,5,2,4,3,0,1,3,1,2};
        String tel="";
        for(int i=0;i<index.length;i++) {
            tel+=arr[index[i]];
        }
          System.out.println("联系方式:"+tel);
    }
    
    }

    一维数组练习题2:

    从键盘读入学生成绩,找出最高分,并输出学生成绩等级。

    最高得分减去学生成绩小于等于10.A等级;

    最高得分减去学生成绩小于等于20.B等级;

    最高得分减去学生成绩小于等于30.C等级;

    其余.D等级;

     1 import java.util.Scanner;
     2 
     3 public class ArrayDemo {
     4     public static void main(String args[]) {
     5         // 使用Scanner读取学生个数
     6         Scanner scan = new Scanner(System.in);
     7         System.out.println("请输入学生人数:");
     8         int studentnum = scan.nextInt();
     9         // 创建数组,存储学生成绩,动态初始化
    10         int[] grade = new int[studentnum];
    11         // 给数组中的元素赋值
    12         int MaxGrade = 0;
    13         System.out.println("请输入成绩:");
    14         for (int i = 0; i < grade.length; i++) {
    15             grade[i] = scan.nextInt();
    16 
    17             // 获取最高分
    18 
    19             if (MaxGrade < grade[i]) {
    20                 MaxGrade = grade[i];
    21             }
    22         }
    23         System.out.println("最高成绩为:" + MaxGrade);
    24         // 根据每个学生成绩与最高分的差值,得到其等级,并输出等级和成绩
    25         char level;
    26         for (int i = 0; i < grade.length; i++) {
    27             if (MaxGrade - grade[i] <= 10) {
    28                 level = 'A';
    29             } else if (MaxGrade - grade[i] <= 20) {
    30                 level = 'B';
    31             } else if (MaxGrade - grade[i] < 30) {
    32                 level = 'c';
    33             } else
    34                 level = 'D';
    35             System.out.println("student" + i + "Score is" + grade[i] + "," + "grade is" + level);
    36         }
    37     }
    38 }

     四,二维数组的使用

    1,理解:

              对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在;

             其实从数组底层的运行机制来看,并没有多维数组;

     2,int[]x,y[];相当于int[];int[] y[],x是一维数组,y是二维数组;

    五,二维数组的练习

          1,输出杨辉三角;

     1 public class YangHuiTest {
     2     public static void main(String args[]) {
     3         // 1,声明并初始化二维数组
     4         int[][] yanghui = new int[10][];
     5         // 2,给数组的元素赋值
     6         for (int i = 0; i < yanghui.length; i++) {
     7             yanghui[i] = new int[i + 1];
     8             //2.1 给首末元素赋值
     9             yanghui[i][0] = yanghui[i][i] = 1;
    10             //2.2给每行的非首末元素赋值
    11             if (i > 1) {
    12                 for (int j = 1; j < yanghui[i].length - 1; j++) {
    13                     yanghui[i][j] = yanghui[i - 1][j - 1] + yanghui[i - 1][j];
    14                 }
    15             }
    16         }
    17         // 遍历二维数组
    18         for (int i = 0; i < yanghui.length; i++) {
    19             for (int j = 0; j < yanghui[i].length; j++) {
    20                 System.out.print(yanghui[i][j] + " ");
    21             }
    22             System.out.println();
    23         }
    24     }
    25 }

    运行结果:

     五,Arrays工具类的使用:

    Java.util.Arrays即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法;

    六,数组中的常见异常:

    1,数组角标越界的异常:ArrayIndexOutOfBoundsExcetion;

    2,空指针异常:NullPointerExcetion

  • 相关阅读:
    1988-B. 有序集合
    1987-A. 集训队选拔
    1964-NP
    1963-带妹子去看电影
    1962-Fibonacci
    1961-计算机基础知识大赛 2 (new)
    TCP/IP协议详解 卷一:协议 18章、TCP连接的建立与终止
    3、剑指offer--从尾到头打印链表
    2、剑指offer--替换空格
    1、剑指offer--二维数组中查找
  • 原文地址:https://www.cnblogs.com/boogie-xy/p/11302235.html
Copyright © 2011-2022 走看看