数组是相同数据类型的有序集合
数组描述的是相同类型的若干个数据,按照一定的先后次序排列而成
每一个数据称做一个数组元素,每个数组元素可以通过一个下标访问
package com.sundada.array; public class ArrayDemo01 { //变量的类型 变量的名字 = 变量的值 //数组类型 public static void main(String[] args) { int[]nums;//int[]表示int类型数组,java使用这种 //int nums2[]; nums=new int[10];//2.创建一个数组 //3.给数组元素 nums[0]=1; nums[1]=1; nums[2]=1; nums[3]=1; nums[4]=1; nums[5]=1; nums[6]=1; nums[7]=1; //计算所有元素的和 int sum=0; for (int i = 0; i < nums.length; i++) { sum=sum+nums[i]; } System.out.println(sum); } }
堆
栈
方法区
声明数组并不存在,创建了才存在
int[]array=null;//在栈里面储存
创建数组
array=new int [10];//创建了堆
package com.sundada.array; public class ArrayDemo02 { public static void main(String[] args) { //静态初始化 int[]a={1,2,3,4,5}; System.out.println(a[4]); //动态初始化 int[]b=new int[10]; b[0]=10; System.out.println(b[0]); System.out.println(b[1]);//没有赋值则默认为0 } }
长度是确定的,一旦创建大小不可改变
类型相同
元素可以是任何类型
数组变量属于引用类型,数组本身就是对象 保存在堆中
int[]a={1,2,3,4,5}; System.out.println(a[4]); for (int i = 0; i < a.length; i++) {//不可以相等,[0,length-1] System.out.println(a[i]); }
for-each循环
普通for循环
数组方法入参
数组返回值
package com.sundada.array; public class ArrayDemo04 { public static void main(String[] args) { int[]arrays={1,2,3,4,5}; //增强性for循环 // for (int array : arrays) {//array是里面的元素,后面的arrays是数组 // System.out.println(array); // } int []reverse= reverse(arrays); printArray(reverse); } public static int[]reverse(int[]arrays){ int[]result=new int[arrays.length]; //反转的操作 for (int i = 0,j=arrays.length-1; i < arrays.length; i++,j--) { result[j]=arrays[i]; } return result; } //打印数组元素 public static void printArray(int[]arrays){ for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } } }