之前介绍了什么是数组,怎么创建数组以及一些简单的属性,那么这篇博客就来聊一聊使用数组的一些方法。
数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 ForEach 循环。
【该实例完整地展示了如何创建、初始化和操纵数组】
1 public class TestArray { 2 public static void main(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 void main(String[] args) { 2 double[] myList = {1.9, 2.9, 3.4, 3.5}; 3 // 打印所有数组元素 4 for (double element: 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 return result; 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才是获取第二维第一个数组长度。