数组声明
java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。
int arr1[]; int[] arr2;
两种写法都可以。
初始化
动态初始化
使用new来为数组分配内存空间:
int[] arr; arr = new int[10];
需要注意的是分配内存空间时要指定数组的数量,同时数组中的每一个元素都会被设置为对应类型的默认值。
内存结构
静态初始化
相对于上面的初始化,还有一种初始化的方式可以在初始化时就指定好数组的内容:
int[] arr = {0,1,2,3,4,5,6,7,8,9};//静态初始化必须在声明时进行 arr = {9,8,7,6,5,4,3,2,1,0};//这里不是声明编译器会报错
动态初始化和静态初始化在使用和内存结构上都没有区别。
使用数组
数组的使用时非常广的,这里写一个冒泡排序的例子来展示一下数组的使用:
1 package org.hammerc.study; 2 3 public class Main 4 { 5 public static void main(String[] args) 6 { 7 int[] arr = {100, 187, 22, 9, 199, 500, 1, 134}; 8 for (int i = 0; i < arr.length - 1; i++) 9 { 10 for (int j = i + 1; j < arr.length; j++) 11 { 12 if (arr[i] < arr[j]) 13 { 14 int temp = arr[i]; 15 arr[i] = arr[j]; 16 arr[j] = temp; 17 } 18 } 19 System.out.print("第" + (i + 1) + "次排序:"); 20 for (int j = 0; j < arr.length; j++) 21 { 22 System.out.print(arr[j] + " "); 23 } 24 System.out.println(""); 25 } 26 for (int i = 0; i < arr.length; i++) 27 { 28 System.out.println(arr[i]); 29 } 30 } 31 }
降序排序。
二维及多维数组
声明
int arr1[][]; int[] arr2[]; int[][] arr3;
和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。
动态初始化
int[][] arr; arr = new int[2][3];
数组所有元素都按类型的默认值来设定。
静态初始化
int[][] m = { {1,2,3}, {2,3,4} };
和1维数组使用一致;
使用
1 package org.hammerc.study; 2 3 public class Main 4 { 5 public static void main(String[] args) 6 { 7 int[][] m = { 8 {1,2,3,1}, 9 {1,3}, 10 {3,4,2} 11 }; 12 int sum = 0; 13 for(int i = 0;i < m.length;i++){ //循环第一维下标 14 sum += m[i].length; //第二维的长度相加 15 } 16 } 17 }
需要注意的是Java允许多维数组的第二维的数组的长度不一样,如上面的例子。
时间: 2024-10-23 00:55:14