zoukankan      html  css  js  c++  java
  • java学习笔记六——数组

    数组类型

      数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素。

      Java数组要求所有数组元素具有相同的数据类型。因此,数组元素的数据类型是唯一的。

      数组定义如下:

      

            type[] arrayName; //推荐使用
            type arrayName[]; //不推荐使用

      通常我们都使用第一种方式。注意:数组的定义不能指定数组长度,只有在初始化时才指定长度。

      数组初始化:

            int[] intArr = new int[]{1,2,3,4,5}; //静态初始化
            int[] intArr2 = {1,2,3,4,5}; //静态初始化的简化版,通常使用这种
            
            int[] intArrDy = new int[5]; //动态初始化

      动态初始化时必须为数组指定长度,系统会自动为数组每个元素指定默认值,默认值与数组元素类型有关,具体如下:

    • 整数类型(byte、short、int、long),默认值为0
    • 浮点类型(float、double),默认值为0.0
    • 字符类型(char),默认值为'u0000‘
    • 布尔类型(boolean),默认值为false
    • 引用类型(类、接口和数组),默认值为null

    使用数组

    访问数组

      数组最常用的用法是访问数组,包括对数组元素的读取和赋值。使用下标访问数组元素,如下:

            int[] intArr = {1,2,3,4,5};
            intArr[4] = intArr[0] + intArr[1];
            System.out.println(intArr[4]);  //3

      下标从0开始,最后一个下标是length-1,即数组总长度-1。当下标大于等于数组长度时会产生数组下标越界异常(java.lang.ArrayIndexOutOfBoundsException)

    遍历数组

      通常有两种方法遍历数组,如下:

            int[] intArr = {23,43,65,87,87};
            
            //使用for语句
            for (int i = 0; i < intArr.length; i++) {
                System.out.println(intArr[i]);  //遍历打印数组元素
            }
            
            //使用foreach语句
            for (int i : intArr) {
                System.out.println(i);  //遍历打印数组元素
            }

      区别在于,前者i表示数组下标,后者表示数组元素。再看下面的例子:

            String[] strArr = {"aaa","bbb","ccc"};
            
            //使用for语句
            for (int i = 0; i < strArr.length; i++) {
                System.out.println(strArr[i]);  //遍历打印数组元素
            }
            
            //使用foreach语句
            for (String string : strArr) {
                System.out.println(string); //遍历打印数组元素
            }

      而且,foreach语句一般不能修改元素,否则很容易出错。而且,foreach的效率略低于for语句,当数据量越大时效果越明显,当嵌套循环越多时越明显。

      不过foreach编程时会方便一点,所以当数据量不是特别大时,使用foreach会方便点。

      最后,给出一种效率最高的方法:

            String[] strArr = { "aaa", "bbb", "vvv" };
    
            for (int i = 0, len = strArr.length; i < len; i++) {
                System.out.println(strArr[i]);
            }

      就是把获取数组长度放在了for语句的语句1的位置,这样就不必每次循环都去读取数组长度了。

  • 相关阅读:
    TCP保活的必要性
    java断言assert初步使用:断言开启、断言使用
    ThreadPoolExecutor参数讲解
    浅谈tcp socket的backlog参数
    能说明白为啥三次握手的文章节选
    HashSet中实现不插入重复的元素
    java中TreeSet集合如何实现元素的判重
    java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题
    poj 3321 Apple Trie
    用命令行编译java并生成可执行的jar包
  • 原文地址:https://www.cnblogs.com/gq2blog/p/6115186.html
Copyright © 2011-2022 走看看