首页 > 代码库 > 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(变景类型变量名:被遍历的数组)