学习java的第14天
数组
package demo01;
/*
- 1.数组的概念: 是一种容器 可以同时存放 同时数据类型的 多个数据
- 2.数组的特点
-
数组是一种引用数据类型
-
数组当中可以存储多个数据,但是类型必须统一
-
数组的长度在程序的运行期间 是不可以改变的
*数组的初始化
- 动态初始化
- 静态初始化
- (1)动态初始化
- c语言的定义
- int temp[10];
- java种的动态初始化
- 类型 对象名 =new类型
- 数组类型[] 数组名称=new 数组类型[数组长度]
- (2)静态初始化
- c语言写法
- int temp[]={};
- java写法
*数组类型[]
数组名称 =new 数组类型{元素1,元素2,元素3…}
注意事项:
山萸肉静态初始化没有告诉你
*
*
*/
public class Demo01Array {
public static void main(String[] args) {
//1.数组的动态初始化
//动态定义一个数组
//创建一个数组,用来存放·55个int数据
//学号
int[] arrayA=new int[55];//动态初始化
//java成绩
double [] arrayB=new double[55];
//姓名
//String[] arrayC=new String[55];
//动态初始化可以分开两步骤
String[] arrayC;
//2 数组的静态初始化
int[] arrayD=new int[] {1,2,3,4,5};
//String[] arrayE=new String[] {"郑志丹","ninin","wowowo","hahah"};
//不省略的静态初始化可以才开为两步骤
//3.数组静态初始化的省略希写法
String[] arrayF= {"郑志丹","ninin","wowowo","hahah"};
//String[] arrayF;
//错误写法,省略静态初始化不能拆开
//arrayF = {"郑志丹","ninin","wowowo","hahah"};
}
}
数组的使用
package demo01;
/*
*
- 直接打印数组名称,都到的是数组对应的:内存地址的哈希值
*/
public class Demo02ArrayUse {
public static void main(String[] args) {
int[] array= {10,20,30,40,50};
System.out.println("array");
//数组的下标是从0开始的
System.out.println("array[0]");//第0编号元素
System.out.println("array[1]");
System.out.println("array[2]");
System.out.println("array[3]");
System.out.println("array[4]");
System.out.println("=======");
int num=array[3];
System.out.println(num);
}
}
运行结果
在使用new运算符创建数组时,当未指定数组元素的初始值时,系统会给数组的每个元素赋默认的值
package demo01;
/*
- 动态初始化
*/
public class Demo03Array {
public static void main(String[] args) {
int []arrayA=new int[3];
System.out.println(arrayA);
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
System.out.println("====");
int []arrayB=new int[3];
System.out.println(arrayB);
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println("====");
String[] arrayc=new String[3];
System.out.println(arrayc);
System.out.println(arrayB[0]);
System.out.println(arrayB[0]);
System.out.println(arrayB[0]);
System.out.println("====");
arrayc[2]="中国女排";
System.out.println(arrayc[0]);
System.out.println(arrayc[1]);
System.out.println(arrayc[2]);
}
}
运行结果
数组的引用
当定义了一个数组,并为它分配了内存空间后,就可以引用数组中的每一个元素了,数组元素的引用方式如下:
arrayName[index]
package demo01;
/*
- 数组的编号从0开始,到数组长度-1结束
- 容易出现数组越界问题
*/
public class Demo04ArrayIndex {
public static void main(String[]args) {
int[] array= {10,20,30};
//错误写法,数组越界异常
System.out.println("====");
//System.out.println(array[3]);
int [] arrayA=null;
//arrayA=new int[3];
System.out.println(arrayA[0]);
}
}
此外,由于数组在加java语言中是作为一个对象的处理的,故每个数组都有一个length属性,其值为数组的长度可以通过"数组名length”的形式引用
package demo01;
public class Demo05Array {
public static void main(String[] args)
{
int[] arrayA=new int[3];//动态
int[] arrayB= {1,2,3,4,5,6,7,8,9,1,2};
int len=arrayB.length;
System.out.println(len);
//数组长度不可更改
int[] arrayC=new int[3];
System.out.println(arrayC.length);
arrayC=new int[5];
System.out.println(arrayC.length);
System.out.println("======");
//数组的使用
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println(arrayB[3]);
System.out.println("======");
for(int i=0;i<5;i++)
{
System.out.println(arrayB[i]);
}
System.out.println("====");
for(int i=0;i<arrayB.length;i++)
{
System.out.println(arrayB[i]);
}
}
}
运行结果
package demo01;
public class Demo01ArrayParam {
public static void main(String[] args) {
int [] array= {10,20,30,40,50};//定义一个数组值
System.out.println(array);//地址哈希值
printArray(array);
}
//数组作为参数传递的始终数组的地址值
public static void printArray(int[] arrayTemp) {
System.out.println("printArray方法接受到的参数是");
System.out.println(arrayTemp);//打印,接收的是地址
for(int i=0;i<arrayTemp.length;i++) {
System.out.println(arrayTemp[i]);
}
}
}
运行结果
package demo01;
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result=calculate(10,20,30);
System.out.println(“main方法接收到的返回值”);
System.out.println(result);
System.out.println("总和"+result[1]);
System.out.println("平均值"+result[1]);
}
//这个写法始终只能返回一个值
public static int[] calculate(int a,int b,int c) {
int sum=a+b+c;
int avg=sum/3;
int[] array=new int[2];
array[0]=sum;
array[1]=avg;
System.out.println("calculate方法内部数组是");
System.out.println(array);
return array;
}
}
运行结果