您的位置:首页 > 编程语言 > Java开发

Java基础知识之数组操作

2017-03-24 14:25 363 查看
1.创建空的数组
//zero是一个长度为0的数组,我们称之为“空数组”。空数组也是一个对象,只是包含元素个数为0。
int[] zero = new int[0];
//nil是一个数组类型的空引用。
int[] nil = null;
//假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对放回数组进一步处理。
//而如果返回空数组,则无须null引用检查。

2.对数组进行排序
//sort方法为由小到大,想由大到小将for循环反一下即可,或自己写排序方法
Arrays.sort(int[] array)

3.提取数组的一部分生成另一个数组
int[] A = new int[]{1,5,2,3,7,9,2,4,9,0};
int[] B = new int[6];
System.arraycopy(A, 3, B, 0,5);
for (int i = 0; i < B.length; i++) {
System.out.print(B[i] + "\t");
}
// System.arraycopy(src, srcPos, dest, destPos, length);
// src:要拷贝的源数组 
// srcPos:要源数组的起始位置,从0算起  
// dest:要拷贝 到的目的数组  
// destPos:目的数组的起始位置  
// length:需要拷贝的长度  

4.合并两个数组,同时使合并的数组不包含重复的元素
使用set集合
public static Integer[] combineArray (int[] array1,int[] array2) {
// Set不允许重复
Set set = new HashSet<>();
for (int i = 0; i < array1.length; i++) {
set.add(array1[i]);
}
for (int i = 0; i < array2.length; i++) {
set.add(array2[i]);
}
//转换成引用类型数组
Integer[] array = new Integer[set.size()];
return (Integer[])set.toArray(array);
}

5.在数组中使用二分法搜索元素
public static int search(int[] array, int key) {
//二分法查找需要有序数组,所以先排序
Arrays.sort(array);
int start = 0;
int end = array.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < array[middle]) {
end = middle - 1;
} else if (key > array[middle]) {
start = middle + 1;
} else {
return middle;
}
}
//没有查到则返回 -1
return -1;
}

6.将数组反转
    直接将数组元素对换
public static String[] inversionArray(String[] array) {
String temp = "";
for (int start = 0, end = array.length - 1; start < end; start++, end--) {
temp = array[end];
array[end] = array[start];
array[start] = temp;
}
return array;
}

    使用ArrayList
public static String[] inversionArray(String[] array) {
List<String> list = new ArrayList<>(array.length);
for (int i = array.length - 1; i >= 0; i--) {
list.add(array[i]);
}
return list.toArray(array);
}

    使用Collections和Arrays工具类
public static Boolean inversionArray(Integer[] array) {
// 这种方式仅针对引用类型,对于基本类型如:
// int[] array2 = new int[]{1,2,3,4,5,6,7,8,9};
// 应该定义或转换成对应的引用类型:
// Integer[] array3 = new Integer[] {1,2,3,4,5,6,7,8,9};
Collections.reverse(Arrays.asList(array));
return true;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: