Java基础(二)数组之如何排序数组并插入元素
在Java中可以对数组进行排序操作,也可以向数组中添加一个元素。
解决方式:
1、通过java.util.Arrays中的sort()方法可实现排序,或者冒泡等排序方式实现。
2、通过arraycopy()实现数组的复制。
3、通过java.util.Arrays中的binarySearch获取数组元素的索引值。
代码部分:
package com.de.test; import java.util.Arrays; public class testArray { public static void main(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:-1 newIndex:0 newArr:[-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