java数组基础
java数组基础
简单来说就是相同类型数据的集合。
数组是一种用一个名字来标识一组有序且类型相同的数据组成的派生数据类型,它占有一片连续的内存空间。
数组作为一个整体有以下几个特征:
- 名字:用于对数组各元素的整体标识,称为数组名
- 类型:数组各元素的类型。
- 维数:标识数组元素所需要的下标个数。
- 大小:可以容纳的数组元素个数。
一维数组:
声明:
基本语法结构:
数据类型 数组名[ ]; 或者 数据类型[ ] 数组名;(首选)
如:int Height[ ];
分配内存的格式:
数组名 = new 数据类型[个数];
如:Height = new int[40];
注:数组声明创建首先必须声明数组变量,才能在程序中使用数组。
数组的元素是通过索引访问的,数组索引从0开始。当获取数组长度时为:arrays.length.
java语言使用new操作符来创建数组,语法如下
dataType[ ] arrayRefVar = new dataType[arraySize];
初始化:
初始化分为静态初始化和动态初始化。
静态初始化是在声明数组的同时赋值。
动态初始化是在声明数组后对其赋值。
数组求和代码示例
package Array;
public class arrayDemo01 {
public static void main(String[] args) {
int[] nums;//声明一个数组
nums = new int[10];//创建一个数组
//以上两句等同于==》int[] nums = new int[10];
//给数组赋值
nums[0]= 1;//下标从0开始
nums[1]= 2;
nums[2]= 3;
nums[3]= 4;
nums[4]= 5;
nums[5]= 6;
nums[6]= 7;
nums[7]= 8;
nums[8]= 9;
nums[9]= 10;
//计算所有元素的和
int sum = 0;
for (int i = 0; i < nums.length; i++) { //搞清楚数组的长度。
sum = sum + nums[i];
}
System.out.println("总和为" +sum);
}
}
java数组内存简单分析
在使用数组时,一定要注意下标越界的问题
下标的合法区间:[0,length-1]
越界则会报错:ArrayIndexOutOfBoundsException:数组下标越界异常
(基于IDEA)
一维数组的简单使用:
package Array;
public class arrayDemo02 {
public static void main(String[] args) {
int [] arrays = {1,2,3,4,5};
//打印数组的全部元素
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
System.out.println("===========");
//计算所有元素的和
int sum = 0;
for (int i = 0; i < arrays.length; i++) {
sum = sum+ arrays[i];
}
System.out.println("总和为 "+sum);
System.out.println("===========");
//找出最大值
int max= arrays[0];
for (int i = 1; i < arrays.length; i++) {
if(arrays[i]>arrays[0]);
max = arrays[i];
}
System.out.println("max= "+max);
System.out.println("============");
int[]reverse = reverse(arrays);
System.out.println();
}
//反转数组
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;
}
}
二维数组
二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。
声明:
元素类型【】【】数组变量;
初始化:
首先声明与分配内存的格式如下
数据类型 数组名【】【】=null;
数组名 = new 数据类型【行的个数】【列的个数】
动态初始化:
int a 【】【】= new int【2】【5】;
静态初始化:
数据类型 数组名【】【】= {{第0行初始值},{第一行初始值},....{第n行初始值}};
int intArray【】【】 = {{1,2},{2,3},{3,4,5}}
简单使用代码示例:
package Array;
//打印数组元素
public class arrayDemo03 {
public static void main(String[] args) {
int[][] array= {{1,2},{2,3},{3,4},{4,5}};//定义一个二维数组
/*
1,2 array[0]-->array[0][0]=1,array[0][1]=2;
2,3 array[1]-->array[1][0]=2,array[1][1]=3;
3,4 array[2]-->array[2][0]=3,array[2][1]=4;
4,5 array[3]-->array[3][0]=4,array[3][1]=5
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
}
}
二维数组的引用格式如下
arrayName【index】【index】
对二维数组中的每个元素引用时
arrayName【index1】【index2】
如:num【1】【2】;
画图分析二维数组:
详细可见视频狂神说java