数组
数组指的是一种容器,可以用来存储同种数据类型的多个值,需要结合隐式转换考虑。
例如 double类型的数组可以存(byte,short,int,long,float,double)类型的值。
格式一:
数据类型[] 数组名
例 int[] array
格式二:
数据类型 数组名[]
例 int array[]
数组的静态初始化
初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程
完整格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,......};
直接打印数组时,打印的是数组的地址值而不是元素
索引
索引也叫做下表,角标。
索引的特点:从0开始,逐个加1增长,连续不间断。
获取数组里面的元素
格式:数组名[索引]
赋值 例 arr[0] = 100把100赋值给0索引对应的元素
关于数组的长度属性 length
调用方法:数组名.length
数组动态初始化:初始化时,只指定数组长度,由系统为为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
例: interesting[] arr = new int[3];
生成随机数
Random r = new Random();
for(int i=0;i<arr.length;i++){
int number = r.nextInt(x(上界))+1;
arr[i] = number;
}
当两个数组同时指向同一个空间时,其中一个数组对小空间的值发生了改变,那么其他数组再次访问的时候都是修改之后的结果了。
方法
是程序中最小的执行单元,重复的的代码,具有独立功能的代码可以抽取到方法中。
方法定义:把一些代码打包在一起,该过程成为方法定义
方法调用:方法地影后并不是直接运行的,需要手动调用才能执行,该过程成为方法调用。
方法定义格式:
public static void 方法名(){ public static void playgame(){
方法体(打包起来的代码); System.out.println();
} }
调用格式:
方法名();
带参数的方法
例 public static void method(int num1,int num2){
int result = num1+num2;
System.out,println(result);
}
调用时 method(10,20);method(20,30);
形参和实参
形参:全称形式参数,是方法定义中的参数。
实参:全称实际参数,方法调用中的参数。
带返回的方法定义及调用
格式: public static 返回值类型 方法名(参数){ 例:public static int getSum(int a,int b){
方法体: int c = a+b;
return 返回值; return c;
} }
1.直接调用:方法名(实参);
2.赋值调用:整数类型 变量名 = 方法名(实参);
3.输出调用:System.out.println(方法名(实参));
方法与方法之间是平级关系,不能互相嵌套定义;
方法的返回值类型为void,表示该方法没有返回值没有返回值的方法可以省略return语句。如果要编写return,后面不能跟具体的数据。
return表示结束程序(方法)。
方法的重载
在同一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。
伪造索引
把原始数组从x到y上对应的元素拷贝到新数组中。
int index = 0;
for(int i=from;i<to;i++){
newArr[inndex] = arr[i];
index++;//index即为伪造的索引
}
方法的内存
传递基本数据类型时,传递的是真实的的数据,形参的改变,不影响实际参数的值。(需要添加返回值)
传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值。(数组属于引用类型)
二维数组及多维数组
二维数组其实是数组中存数组
当我们需要把数据分组管理的时候,就需要用到二维数组
格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2},{元素1,元素2}};
简化格式:数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2}};
int[][] arr = new int[][]{{1,2,3},{4,5,6,7,8}};
arr[0]:二维数组中的第一个一维数组
arr[0][0]:获取第一个一维数组中0索引的元素。
动态初始化
int[][] arr = new int[3][5];(3:3个一维数组,5:每个一维数组都有五个元素)
arr[0][0] = 10;把10赋值给第一个一维数组的第一个元素
特殊情况一:
int[][] arr = new int[2][];仅定义两个一维数组,未定义一维数组长度。
int[] arr1 = {11,22};
int[] arr2 = {44,55,66};
arr[0] = arr1;
arr[1] = arr2;
特殊请何况2:
int [][] arr = new int [2][3];
int [] arr1 = {11,22};
int[] arr2 = {44,55,66};
arr[0] =arr1;
arr[1] = arr2;
此时原来的二维数组中的一维数组将被新的数组覆盖。
多维数组和二维数组原理相同都是存储数组。