数组是一种数据结构,它由相同类型的相关数据项按一定次序排列组成。
我们先看一下一个简单的有关数组的例子来初识数组:
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;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ array[i][j]='#'; } } for(int i=0;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ System.out.print(array[i][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;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ System.out.print(array[i][j]+" "); } System.out.println(); } } /* * 输出 * # * # # * # # # * # # # # */}以上就是有关数组的基本知识了。
在前面提到过的数组不会自动的调整它的大小来容纳更多的元素,而ArrayList<T>
则会为了容纳更多的元素而自动调整大小。
方法 | 描述 |
---|---|
add() | 把一个元素添加到ArrayList的末尾 |
clear() | 删除ArrayList中的全部元素 |
contains() | 判断ArrayList中是否包含某元素 |
get() | 返回ArrayList中指定位置上的元素 |
indexOf() | 返回ArrayList中指定元素第一次出现的位置 |
remove() | 移除ArrayList中指定位置上的元素,并返回该元素 |
size() | 返回ArrayList中所有元素的个数 |
trimToSize() | 移除ArrayList中多申请的存储空间 |
新闻热点
疑难解答