(四)Java程序设计之数组和ArrayList类

数组的概念

数组是一种数据结构,它由相同类型的相关数据项按一定次序排列组成。

一维数组

我们先看一下一个简单的有关数组的例子来初识数组:

package test4;

/**
 * Java程序设计 TestArrayOne.java 
 * 作者:白芷 
 * 时间:2017/3/4 
 * 说明:简单的初步认识数组的例子
 */
public class TestArrayOne {

    public static void main(String[] args) {
        int[] array = new int[5];// 声明以及初始化数组
        for (int i = 0; i < array.length; i++) {
            array[i] = i + 1;
        }
        for (int j = 0; j < array.length; j++) {
            System.out.println("a[" + j + "]=" + array[j]);
        }
    }
    /**
     * 输出 
     * a[0]=1 
     * a[1]=2 
     * a[2]=3 
     * a[3]=4 
     * a[4]=5
     * 
     */
}

这就是一个简单的有关数组的例子了。我们看到程序上面有关数组声明与实例化的注释,那么数组有多少种实例化的方式呢?

一维数组的初始化

创建并初始化数组

在上面例子中对数组的初始化方式就是创建并初始化数组,使用new关键字创建了一个一个长度为5的数组。
这方法又称为动态初始化方法,因为数组的值是在后面由系统指定的。

使用数组的初始化器

数组的初始化器是一个用逗号隔开的表达式列表(称为初始化器列表),放在大括号中。这里,数组的长度由初始化器列表里面元素的个数来确定,如下代码:

package test4;

/**
 * Java程序设计 TestArrayTwo.java 
 * 作者:白芷 
 * 时间:2017/3/4 
 * 说明:使用数组的初始化器初始化数组
 */
public class TestArrayTwo {

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};// 使用数组的初始化器初始化数组

        for (int j = 0; j < array.length; j++) {
            System.out.println("a[" + j + "]=" + array[j]);
        }
    }
    /**
     * 输出 
     * a[0]=1 
     * a[1]=2 
     * a[2]=3 
     * a[3]=4 
     * a[4]=5
     */
}

当然上面的初始化也可写成如下的形式:int[] array = new int[]{1,2,3,4,5};
该方法也称为静态数组初始化方法。

以上就是一维数组有关的内容了,接下来我们看一下有关二维数组的!

二维数组

首先我们也从一个简单的有关二维数组的程序入手,该程序用以打印一个矩形:

package test4;

/**
 * Java程序设计  TestArrayThree.java
 * 作者:白芷 
 * 时间:2017/3/4 
 * 说明:二维数组打印矩形
 */
public class TestArrayThree {

    public static void main(String[] args) {
        char[][] array=new char[4][4];//二维数组的初始化
        for(int i=0;ifor(int j=0;j'#';
            }
        }
        for(int i=0;ifor(int j=0;j" ");
            }
            System.out.println();
        }
    }
    /*
     * 输出
     * # # # # 
     * # # # # 
     * # # # # 
     * # # # # 
     */
}

在这里声明一句,从数组的底层来看,是没有多维数组的。(《征服C指针》中说得好,数组就是指针的语法糖)。Java语言里,数组类型是引用类型,二维数组说到底就是一维数组里面保存的引用指向了一维数组。

其他的二维数组

行长度不同的二维数组

我们看一下一个打印三角形的例子来说明:

package test4;

/**
 * Java程序设计  TestArrayFour.java
 * 作者:白芷 
 * 时间:2017/3/4 
 * 说明:二维数组打印三角形
 */
public class TestArrayFour {

    public static void main(String[] args) {
        char[][] array; 
        array=new char[][]{{'#'},{'#','#'},{'#','#','#'},{'#','#','#','#'}};
        for(int i=0;ifor(int j=0;j" ");
            }
            System.out.println();
        }
    }
    /*
     * 输出
     * # 
     * # # 
     * # # # 
     * # # # # 
     */
}

以上就是有关数组的基本知识了。

ArrayList类

在前面提到过的数组不会自动的调整它的大小来容纳更多的元素,而ArrayList则会为了容纳更多的元素而自动调整大小。

常用方法

方法 描述
add() 把一个元素添加到ArrayList的末尾
clear() 删除ArrayList中的全部元素
contains() 判断ArrayList中是否包含某元素
get() 返回ArrayList中指定位置上的元素
indexOf() 返回ArrayList中指定元素第一次出现的位置
remove() 移除ArrayList中指定位置上的元素,并返回该元素
size() 返回ArrayList中所有元素的个数
trimToSize() 移除ArrayList中多申请的存储空间

你可能感兴趣的:([,Java,Java语言基础,],ArrayList类,数组)