黑马程序员技术交流社区

标题: 求执行在数组中插入元素方法 思路要清晰啊 [打印本页]

作者: 宋耀冬    时间: 2013-3-18 11:47
标题: 求执行在数组中插入元素方法 思路要清晰啊
/*
需求:
1.有一个有序的数组,想要将一个元素插入数组中,
还要保证数组是有序的,如何获取元素在数组中的位置
2.把这个元素插入数组,并打印插入后的数组
*/
class ArrayT
{
        public static void main(String[] args)
        {
                int[] arr = {2,4,5,7,8,19,32,45};//插入8
                printArray(arr);//插入前打印
                int index = getIndex(arr, 8);
                System.out.println("index = " + index);//打印插入位置

        }

        //定义查找插入位置方法
        public static int getIndex(int[] arr, int key)
        {
                int min = 0, max = arr.length-1, mid;

                while (min <= max)
                {
                        mid = (max + min)>>1;
                        if (key > arr[mid])
                        {
                                min = mid + 1;
                        }
                        else if (key < arr[mid])
                        {
                                max = mid - 1;
                        }
                        else
                                return mid;
                }
                return min;
        }

        //定义打印数组方法
        public static void printArray(int[] arr)
        {
                System.out.print("[ ");
                for (int x = 0; x < arr.length; x++)
                {
                        if (x != arr.length - 1)
                        {
                                System.out.print(arr[x] + ", ");
                        }
                        else
                                System.out.println(arr[x] + " ]");
                }
        }

        //求把元素插入数组的方法
        /*
         需求2思路:
        1. 定义一个新的数组,存放插入元素后的数据。
        2. 新数组元素个数,arr.length+1
        3.
        */
}
作者: 杨玉辉    时间: 2013-3-18 15:06
我也不明白,不用集合的话,怎么才可以添加元素

不过学了listIterator 好方便,遍历集合, 加上判断语句  一个add 搞定,或者直接Collections.sort()排完序 ,但是未学集合之前只要能懂定位元素在数组中的角标就行

至于吗,int[] arr 只是定义 数组 ,它里面好像没有具体的操作 元素的方法,拿来用就好了。如果非要改变里面的值,就把它变成集合,然后转变回来。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2