在Java中可以对数组进行排序操作,也可以向数组中添加一个元素。
解决方式:
1、通过java.util.Arrays中的sort()方法可实现排序,或者冒泡等排序方式实现。
2、通过arraycopy()实现数组的复制。
3、通过java.util.Arrays中的binarySearch获取数组元素的索引值。
代码部分:
packagecom.de.test;importjava.util.Arrays;public classtestArray {public static voidmain(String[] args) {int arr[] = {2,6,4,8,9};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));int index = Arrays.binarySearch(arr,-1);int newIndex = -index - 1;int newArr[] = new int[arr.length + 1];
System.arraycopy(arr,0,newArr,0,newIndex);
newArr[newIndex]= -1;
System.arraycopy(arr,newIndex,newArr,newIndex+ 1,arr.length -newIndex);
System.out.println("index:" +index);
System.out.println("newIndex:" +newIndex);
System.out.println("newArr:" +Arrays.toString(newArr));
}
}
运行结果:
[2, 4, 6, 8, 9]
index:-1newIndex:0newArr:[-1, 2, 4, 6, 8, 9]
代码说明:
int index = Arrays.binarySearch(arr,-1);
java.util.Arrays中提供的binarySearch()方法,查找目标数组中是否包含某个元素,并且返回一个int类型的数值。
方法详细介绍:
binarySearch(Object[], Object key)
第一个参数: 要查找的数组
第二个参数:要搜索的元素
如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素的索引。
返回值计算:
搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
搜索值是数组元素,从0开始计数,得搜索值的索引值;
搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
搜索值不是数组元素,且小于数组内元素,索引值为 – 1。
方法详细介绍参考了:http://blog.csdn.net/cxhply/article/details/49423501