之前介绍了什么是数组,怎么创建数组以及一些简单的属性,那么这篇博客就来聊一聊使用数组的一些方法。
数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 ForEach 循环。
【该实例完整地展示了如何创建、初始化和操纵数组】
1 public classTestArray {2 public static voidmain(String[] args) {3 double[] myList = {1.9, 2.9, 3.4, 3.5};4 //打印所有数组元素
5 for (int i = 0; i < myList.length; i++) {6 System.out.println(myList[i] + " ");7 }8 //计算所有元素的总和
9 double total = 0;10 for (int i = 0; i < myList.length; i++) {11 total +=myList[i];12 }13 System.out.println("Total is " +total);14 //查找最大元素
15 double max = myList[0];16 for (int i = 1; i < myList.length; i++) {17 if (myList[i] >max) {18 max =myList[i];19 }20 }21 System.out.println("Max is " +max);22 }23 }
1、For-Each 循环
JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下 遍历数组。
语法格式如下:
1 for(type element: array){2 System.out.println(element);3 }
【示例】
1 public static voidmain(String[] args) {2 double[] myList = {1.9, 2.9, 3.4, 3.5};3 //打印所有数组元素
4 for (doubleelement: myList) {5 System.out.println(element);6 }7 }
2、数组做方法入参
数组可以作为参数传递给方法
【示例】
1 //打印数组
2 public static void printArray(int[] array) {3 for (int i = 0; i < array.length; i++) {4 System.out.print(array[i] + " ");5 }6 }
3、数组作返回值
1 public static int[] reverse(int[] list) {2 int[] result = new int[list.length];3 for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {4 result[j] =list[i];5 }6 returnresult;7 }
多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维 数组。
多维数组的动态初始化(以二维数组为例)
直接为每一维分配空间,格式如下:
type[][] typeName = new type[typeLength1][typeLength2];
type 可以为基本数据类型和复合数据类型,arraylenght1 和 arraylenght2 必须为正整数, arraylenght1 为行数,arraylenght2 为列数。
比如定义一个二维数组:
1 int a[][] = new int[2][5];
解析:二维数组 a 可以看成一个两行五列的数组。
多维数组的引用(以二维数组为例)
对二维数组中的每个元素,引用方式为 arrayName[index1] [index2],例如:
num[1] [0];
其实二维甚至多维数组十分好理解,我们把两个或者多个值当做定位就好。
原来的数组就是一条线,我们知道一个位置就好
二维就是一个面,两点确定一个位置
三维呢,就需要三个点来确定
。。。
依次理解即可!
获取数组长度:
a.length获取的二维数组第一维数组的长度,a[0].length才是获取第二维第一个数组长度。