Java数组
Posted 是小叶的呢.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数组相关的知识,希望对你有一定的参考价值。
对于所有的编程语言来说数组都是相对比较重要的数据结构之一。在Java中数组主要用来存放一组固定大小的相同类型的数据。
(一)、数组变量的声明
数组声明有两种写法:
dataType[] arrName;//推荐
dataType arrName[];//不推荐
int[] intArr1;//推荐
int intArr2[];//不推荐
(二)、数组的初始化
两种:
1、 静态初始化 arrName=new dataType[]value0,value1,…,valueN
intArr1=new int[]1,2,3,4,5,6,7,8,9;
静态初始化时可以把 数组的声明和初始化用一条语句完成。 可以省略new dataType[]
dataType[] arrName=value0,value1,…,valueN;
int[] intArr3=new int[]3,5,7,89;
2、动态初始化 arrName=new dataType[length];//length 初始化数组的长度(元素个数)
数组的声明和动态初始化用一条语句完成。 dataType[] arrName=new dataType[length];
strArr1=new String[10];//10个元素
integerArr1=new Integer[20];
(三)、数组的引用(取值、赋值)
Java中通过下标来引用数组元素 : arrName[index]; index就是元素下标,从0开始,最大值为数组长度-1;
在使用下标时一定要注意下标范围 [0,array.length-1]。如果下标大于数组length-1或小于0时,抛出数组越界异常 java.lang.ArrayIndexOutOfBoundsException
int intA=intArr1[3];//取第四个元素,从0开始 取值
System.out.println("intA="+intA);
(四)、数组的遍历
for循环
while循环
do…while循环
Java增强型for循环(只能取值,不能赋值)
int[] intArr4=new int[]23,24,25,26,27,28,29;
for(int i=0;i<intArr4.length;i++)
System.out.print(intArr4[i]+"\\t");
//while循环遍历
int index=0;
while(index<intArr4.length)
System.out.print(intArr4[index] + "\\t");
index++;
System.out.println();
for(int j:intArr3)
System.out.print(j+"\\t");
System.out.println();
for(String str:strArr2)
System.out.print(str+"\\t");
System.out.println();
//赋值
for(int i=0;i<integerArr1.length;i++)
integerArr1[i]=i+1;
for(Integer integer:integerArr1)
System.out.print(integer+"\\t");
//Java增强型for循环不能赋值,只能取值
System.out.println();
int[] intArr5=new int[20];
for(int i=1;i<10;i++)
for(int j=1;j<=i;j++)
System.out.print(j+"*"+i+"="+(j*i)+"\\t");
System.out.println();
(五)、动态初始化数组的初始值
如果是基本数据类型数组,就是对应数据类型的默认值
如果是引用类型,一般为null
(六)、数组在内存中的存储方式
基本数据类型的数组,数组元素中直接存放值。
对于引用数据类型(String,类类型)的数组:元素中存放的是内存地址。
数组也是一种引用类型。
(七)、二维数组
1、二维数组的声明、初始化和引用与一维数组相似
int[][] intArr1=new int[][]1,2,3,4,5,6;
int[][] intArr2=12,13,14,15;
int[][] intArr3=new int[3][4];
int[][] intArr4=new int[][]1,1,2,5,7,8;
int[][] intArr5=new int[5][];//暂时不指定里面数组的大小
//通过下标引用
System.out.println(intArr1[1][0]);
intArr3[0][0]=1;
2、 二维数组的for遍历赋值和Java增强型for循环赋值
for(int i=0;i<intArr4.length;i++)
for(int j=0;j<intArr4[i].length;j++)
System.out.print(intArr4[i][j]+"\\t");
System.out.println();//换行
//赋值
System.out.println("intArr5遍历赋值:");
int sum=0;
for(int i=0;i<intArr5.length;i++)
//intArr5 内层是没有初始化的,需要先初始化
intArr5[i]=new int[i+1];
//遍历赋值
for(int j=0;j<intArr5[i].length;j++)
intArr5[i][j]=sum++;
System.out.println("java增强型for循环遍历");
for(int[] ints:intArr5)//外层
for(int intA:ints)//内层
System.out.print(intA+"\\t");
System.out.println();
3、 多维数组遍历
//多维数组
int[][][] intArr6=new int[4][][];
int [][][] intArr7=new int[][][]3,5,8,2,7,5;
//遍历
for(int i=0;i<=intArr7.length;i++)
for(int j=0;j<= intArr7.length;j++)
for(int k=0;j<= intArr7[i][j].length;k++)
System.out.print(intArr7[i][j][k]+"\\t");
以上是关于Java数组的主要内容,如果未能解决你的问题,请参考以下文章