Java-9 数组
一、数组概念:
1.数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
2.数组既可以存储基本数据类型,也可以存储引用数据类型。
二、数组定义格式:
格式1:数据类型[] 数组名; //推荐使用此种格式
格式2:数据类型 数组名[];
三、数组初始化
1.概念:Java中的数组必须先初始化,然后才能使用。所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
2.初始化方法:
2.1 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
int[] arr = new int[5]; //动态初始化
2.2 静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
数据类型[] 数组名 = {元素1,元素2,…};
int[] arr = {1,2,3,23,2,6,5,99,4,6,45,6,1,94,1,19,165,16,19,65,116,1,1}; int[] arr = new int[]{1,23,15,18};
public class ArrayDemo { public static void main(String[] args) { // int[] arr = new int[5]; //动态初始化 int[] arr = {1,2,3,23,2,6,5,99,4,6,45,6,1,94,1,19,165,16,19,65,116,1,1}; //静态初始化 System.out.println(arr);//数组地址值 System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); int sum = 0; //数组求和 System.out.println("===========数组求和==================="); for (int i=0; i<arr.length; i++){ sum += arr[i]; } System.out.println("数组之和"+sum); //数组遍历 System.out.println("===========数组遍历==================="); for (int i = 0; i<arr.length; i++){ if(i==0){ System.out.print("["+arr[i]+"\t"); } else if(i==arr.length-1){ System.out.println(arr[i]+"]"); }else{ System.out.print(arr[i]+"\t"); } } System.out.println("===========数组最大值==================="); int max = arr[0]; for (int i=1; i<arr.length; i++){ if(arr[i] > max){ max = arr[i]; } } System.out.println("数组最大值是"+max); } }
3.封装调用
public class ArrayDemo1 { public static void main(String[] args) { //调用最大值 int max = maxNum(new int[]{2,5,4,6,4,8,5,9}); System.out.println("数组最大值是"+max); //调用最小值 int min =minNum(new int[]{2,5,4,6,4,8,5,9}); System.out.println("数组最小值是"+min); //调用遍历 traverse(new int[]{2,56,8,6,19,4}); forEach(new int[]{12,56,564,51,21,45}); } //有返回值,输出数组最大值 public static int maxNum(int[] arr){ int max = arr[0]; for (int i=1; i<arr.length; i++){ if(arr[i]>max){ max = arr[i]; } } return max; } //有返回值,输出数组最大值 public static int minNum(int[] arr){ int min = arr[0]; for (int i=1; i<arr.length; i++){ if(arr[i]<min){ min = arr[i]; } } return min; } //无返回值的 public static void traverse(int[] arr) { for (int i = 0; i < arr.length; i++) { if (i == 0){ System.out.print("[" + arr[i]+"\t"); }else if (i == arr.length-1) { System.out.println(arr[i]+"]"); }else{ System.out.print(arr[i]+"\t"); } } } //for-each语句 public static void forEach(int[] arr1){ for(int element : arr1){ System.out.println(element); } } }