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. 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
  2. 搜索值是数组元素,从0开始计数,得搜索值的索引值;
  3. 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
  4. 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。

方法详细介绍参考了:http://blog.csdn.net/cxhply/article/details/49423501

posted @ 2018-01-24 09:19  依依大脚丫  阅读(753)  评论(0编辑  收藏  举报