数组知识点总结

一,数组的特点:

  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

 

posted @ 2019-08-05 12:03  Boogiever  阅读(1357)  评论(0编辑  收藏  举报