数组、引用传递实例以及映射转换
数组的定义与使用
数组的定义:
- 数组的动态初始化,初始化之后数组每一个元素的保存内容为其对应数据类型的默认值。
声明并初始化数组: 数据类型数组名称 [] = new 数据类型[长度]; - 数组的静态初始化,在数组定义的时候就为其设置好了里面的内容。
- 简化格式:数据类型数组名称 [] = {数据1, 数据2,数据…};
- 完整格式:数据类型数组名称 [] = new 数据类型 [] {数据1, 数据2,数据…};
foreach输出:
JDK1.5之后为了减轻下标对程序的影响(如果下标处理不当则会出现数组越界),引入了一个增强型的for循环(foreach),利用foreach的语法结构可以直接自动获取数组中的每一个元素,避免下标访问,语法:
for (数据类型 变量 :数组|集合 ) {}
public class ArrayDemo {
public static void main (String args []) {
int data [] = new int [] {
1,2,3,4,5}
for (int temp : data) {
//自动循环,将data数组每一个内容交给temp
System.out.println (temp) ;
}
}
}
二维数组
和上面一维数组的使用类似,只是变成了两个下标来描述一个数据;
- 数组的动态初始化:
数据类型 数组名称 [ ][ ] = new 数据类型 [行个数] [列个数] ; - 数组的静态初始化:
数据类型 数组名称 [ ][ ] = new 数据类型 [ ][ ] { {数据,数据…},{数据,数据…},…};
数组操作
- 数组排序: java.util.Arrays.sort(数组名称);
- 数组拷贝: System.arraycopy(源数组,源数组开始点,目标数组,目标数组开始点,拷贝长度);
方法可变参数
可变参数的最大作用在于利用此种形式就可以避免数组的传递操作,本质还是数组。
class ArrayUtil {
public static int sum(int ... data) {
//可变参数,变种数组
int sum=0;
for (int temp : data) {
sum += temp ;
}
return sum ;
}
}
public class ArrayDemo {
public static void main (String args[]) {
System.out.println(ArrayUtil.sum(1,2,3));
System.ou