首页 > 代码库 > Java语言程序设计基础篇 数组(六)

Java语言程序设计基础篇 数组(六)

Java语法之数组

数组的定义

数组是对象。

如:int [ ]  x = new int[100];
或 :int x [ ]  = new int[100];(这种方式主要是为了适应C/C++程序员)

声明一个数组变量:int [ ] x;并不会在内存中给数组分配任何空间,仅创建一个引用数组的存储地址。

数组创建后,其元素赋予默认值,数值型基本数据类型默认值为0,char类型为‘\u0000’,boolean类型为false。

数组的静态初始化

如:int [ ] x = new int [ ] {3,4,5};

多维数据

如:
int [ ][ ] xx = new int [3][ ];
xx[0] = new int[3];
xx[1] = new int[2];
xx[2] = new int[3];

数组的复制

错误:array1 = array2;
该语句并不能将array2的内容复制给array1,而是将array2的引用传给了array1。使用array1 = array2 这个语句之后,array1,array2指向了同一个数组,

这样,array2之前所引用的数组不能再引用了,变成了垃圾,会被JVM自动回收的。所以使用“=”是不能进行数组的复制,它实际上是将=右边的数组的引用传给了=左边的数组变量,达到两个数组变量指向同样的内存地址。

常用的数组复制的方法有以下3种:
1.使用循环语句逐个复制数组的元素(最简单的方法)

2.使用System类中的静态方法arraycopy

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

参数:
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
另外:arraycopy方法没有给目标数组分配内存空间,复制前需要创建目标数组并给它分配内存。复制完成后,各自占有独立空间。

//使用System中的静态方法arraycopy复制数组   
int[] targetArray = new int[sourceArray.length];
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

3.使用clone方法复制数组

int[] targetArray = new int[sourceArray.length];
/*使用clone方法将int[]型数组,将sourceArray复制到targetArray
*由于clone方法返回值的类型是对象Object,所以要使用(int[])强制转换为int[]
*/
targetArray = (int[])sourceArray.clone();

给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,

那么个元素的存储的角标为如何获取。

折半查找中③将return -1改成return min (插入的脚标)   也可以用return -min-1 java提供的

方法一致

java中提供了折半查找的方法import java.util.*;

  int index =Arrays.binarySearch(arr,5);//<span style="font-family:宋体>如果存在返回的具体的角标位置,不存在返回的是  -插入点-1


增强for循环格式:for(变景类型变量名:被遍历的数组)