数组
-
相同类型数据的有序集合,数组也是对象,数组长度一旦确定不可更改。
-
每一个数据被称为一个数组元素,每个数组元素可以通过索引(下标,从0开始)访问
-
必须先声明数组变量,才能使用数组:数据类型 [] 数组名称 ;例:Int[] nums;
-
Java用new操作符创建数组,例:nums=new int[10];
-
获取数组长度:例如:nums.length;
int[] nums;//声明一个数组,名为nums,数据类型为int nums =new int[5];//创建一个数组,可以存放5个int型数字(声明数组是,数组并不存在,创建数时才存在) //以上两步亦可以写成:int[] nums=new int[5];
数组特点:
长度确定,一旦创建,长度大小不可以更改
元素必须是相同类型
类型可以为任何数据类型,包括基本类型,引用类型
数组对象在堆中
内存分析
堆:
存放new的对象和数组 例:nums =new int[5];
可以被所有的线程共享,不会存放别的对象引用
栈:
存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(存放这个引用在堆里面的具体地址)
方法区:
可以被所有的线程共享
包含了所有的class和static变量
数组初始化
静态初始化:定义后不可在更改:int[] nums={1,2,3},创建数组并赋值
动态初始化:()包含默认初始化;int[] nums=new int[2]; nums[0]=1; nums[1]=2;
默认初始化:未赋值,基本类型为0,0.0;string类型为null。
数组使用
for循环:
//打印全部数组元素 int[] nums={1,2,3,4,5}; for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]); }
//for循环 计算所有元素和 int sum=0; int[] nums={1,2,3,4,5}; for (int i = 0; i <nums.length ; i++) { sum=sum+nums[i]; } System.out.println("和为:"+sum);
//for循环 查找最大元素 int[] nums={1,2,3,4,5}; int max=nums[0]; for (int i = 0; i < nums.length; i++) { if (max<nums[i]){ max=nums[i]; } } System.out.println("最大值为:"+max);
增强for循环:(array.for)for(int array:数组名){}
public static void main(String[] args) { int[] nums={1,2,3,4,6}; for(int array:nums){ System.out.print(array+" "); } }
数组作方法入参:
//数组作方法入参: public static void main(String[] args) { int[] nums={1,2,3,4,6}; printArray(nums); } public static void printArray(int[] nums){ for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]+" "); } }
数组作返回值:
二维数组:
int a[][]=new int[2][5];//一个2行5列的数组
public static void main(String[] args) { int[][]array={{1,2},{2,3},{5,6},{5,2}}; System.out.println(array[0][1]);//第一行,第二列,输出结果为2 System.out.println(array[1][1]);//第二行,第二列,输出结果为3 }