黑马程序员技术交流社区
标题:
求执行在数组中插入元素方法 思路要清晰啊
[打印本页]
作者:
宋耀冬
时间:
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