数组是java中一种常见的数据结构,分为一维数组、二维数组以及多维数组等几种。
1、理解数组:
一组固定长度且固定类型的数据的结合;
一维数组语法格式:类型[] 数组的名称 = new 类型[长度];
数组属于引用类型;
数组长度的获得:数组名字.length;
注意:”=”左侧是变量的定义,右侧是值,然后将右侧的值赋给左侧的变量;
特点:
(1)固定长度
(2)相同数据类型
(3)自动从0开始编号,最大编号是数组的长度减1
(4)数组里存放的数据有默认值
byte [] (byte)0
short[] (short)0
int[] 0
long 0L
float 0.0f
double 0.0
boolean[] false
引用类型 [] null 比如String[] null
如果在定义前已经确定数组里存放的内容,那可以简单定义为:
类型[] 数组的名字 = {值1,值2,值3,值4,值5,值6...};
或
类型[] 数组的名字 = new 类型[]{值1,值2,值3,值4,值5,值6...}
可以这样定义:
int[] abc;
abc = new int[]{1,2,3};
但这样会出错:
int[] abc;
abc = {1,2,3};
2、一维数组:
(1)一维数组的申明与内存分配:
数组类型[] 数组名;//申明一维数组(数组名中存的是地址)
数组名 = new 数组类型[长度]//分配内存给数组
生成随机数组:
package exercise2;
import java.util.Random;
public class Ex10_2 {
public static void main(String[] args){
Random rand = new Random();
int[] nums = null;
nums = new int[rand.nextInt(10)];
System.out.println("数组长度:" + nums.length);
for(int i = 0; i<nums.length; i++){
nums[i] = rand.nextInt(100);
System.out.println("nums[" + i + "]=" + nums[i]);
}
}
}
求数组的最大值:
int[] nums = {345, 34 ,11, 1, 40, 2000, 22};
int max = nums[0];
for(int i = 1; i< nums.length; i++){
if(nums[i] > max){
max = nums[i];
}
}
System.out.println(max);
(2)赋值传递与引用传递:
赋值传递:将值复制一份给另一个变量,复制后彼此独立;
引用传递:复制的是地址,复制后两者指向同一个地址
3、二维数组:
int sum = 0;
int allSum = 0;
int[][] nums = {{30,35,26,32},{33,34,30,29}};
for(int i = 0; i<nums.length; i++){
System.out.println("第" + (i+1) + "的个人年度销售总额:");
for(int j = 0; j<nums[i].length; j++){
sum += nums[i][j];
allSum += nums[i][j];
}
System.out.println(sum);
sum = 0;
}
System.out.println("今年的总销售额:" + allSum);
4、多维数组:
数据类型[][][] 数组名 = new 数据类型[][][];
5、高手点拨
(1)java中的null使用:
null可以为引用类型赋值,作为初始值;比如数组和String类型;
只要是null类型的值带”.”都会报错;
(2)数组的下标:
数组的下标是从0开始到数组的长度-1;