2.Java数组_一维数组二维数组的动态初始化与静态初始化、方法接收/返回/修改数组、java对数组的排序/全拷贝/部分拷贝

Java数组----引用数据类型,必须在使用前先初始化;否则会nullPointerException(运行时异常)。

(引用传递:多个栈内存指向同一块堆内存)

1.一维数组初始化

(1)动态初始化(声明并开辟数组)

数据类型[] 数组名称 = new 数据类型[长度];

如:声明并开辟一个长度为5的整型数组:int[] data = new data[5];

注:

  • 数组通过下标索引来取得元素,下标默认从0开始。
  • 数组越界:数组下标超出数组长度,数组越界异常(运行时异常)。
  • 数组中每个元素都有默认值,默认值是该数据类型默认值。
  • 取数组长度:数组名.length;
  • 数组遍历推荐用for-each循环(仅限于数组内容读取)。要修改数组内容,使用常规for循环。

// JDK1.5 提供for-each循环。 for(int x: data){...}

(2)静态初始化

简化格式:数据类型[ ] 数组名 = {值,值,...};

完整格式(推荐):数据类型[ ] 数组名 = new 数据类型[ ] {值,值,...};

eg:int[ ] data = new int[ ] {1,3,5,7,9,10};

注:在数组定义时,直接设置内容,根据值的个数确定数组长度,且长度不可修改。

匿名数组:System.out.println(new int[]{1,3,5,7,9,10}[1]);

2.二维数组初始化

(1)动态初始化

数据类型[ ][ ] 数组名称 = new 数据类型[行个数][列个数]

eg:int[ ][ ] data = new int[3][4]; //开辟行数3列数4的整型数组

(2)静态初始化

数据类型[ ][ ] 数组名称 = new 数据类型[ ][ ]{{第一行的值},{第二行的值},...}

3.数组与方法的互操作--引用传递

(1)方法接收数组

(2)方法返回数组

public static int[] init(){

      return new int[]{1,2,3};
}

(3)方法修改数组

4.java对数组的支持(应对笔试,可以直接调用)

(1)排序-----java.util.Arrays.sort(数组名称);

  • 支持所有基本数据类型数组。

  • 内部使用双轴快速排序

(2)数组部分拷贝

System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);

(3)数组全拷贝(*****)

  • java.util.Arrays.copyOf(源数组名称,新数组长度):int[ ]
  • java动态数组动态扩容方法

猜你喜欢

转载自blog.csdn.net/qq_40408483/article/details/83415034