如何在一个一维数组中插入一个和删除一个数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在一个一维数组中插入一个和删除一个数相关的知识,希望对你有一定的参考价值。
例如:1,2,3,4
可以任意位置插入一个数或删除任意一个数。
用java实现,写上测试类(main) 不能踢掉最后一个元素,是重建一个比原来长一点的数组,
当删除一个数之后,删除数的后面数往前移,重新组成一个新的数组。
public class Test
public static void main(String args[])
String[] array = "a", "b", "c", "d";
System.out.println(java.util.Arrays.toString(array));
String[] array2 = ArrayUtilities.insert(array, "e", 2);
System.out.println(java.util.Arrays.toString(array2));
String[] array3 = ArrayUtilities.remove(array2, 3);
System.out.println(java.util.Arrays.toString(array3));
class ArrayUtilities
public static int[] insert(int[] original, int newElement, int pos)
int length = original.length;
int[] dest = new int[length + 1];
System.arraycopy(original, 0, dest, 0, pos);
dest[pos] = newElement;
System.arraycopy(original, pos, dest, pos + 1, length - pos);
return dest;
@SuppressWarnings("unchecked")
public static <T> T[] insert(T[] original, T newElement, int pos)
int length = original.length;
T[] dest = (T[]) java.lang.reflect.Array
.newInstance(newElement.getClass(), length + 1);
System.arraycopy(original, 0, dest, 0, pos);
dest[pos] = newElement;
System.arraycopy(original, pos, dest, pos + 1, length - pos);
return dest;
public static int[] remove(int[] original, int pos)
int length = original.length;
int[] dest = new int[length - 1];
System.arraycopy(original, 0, dest, 0, pos);
System.arraycopy(original, pos + 1, dest, pos, length - pos - 1);
return dest;
@SuppressWarnings("unchecked")
public static <T> T[] remove(T[] original, int pos)
int length = original.length;
T[] dest = (T[]) java.lang.reflect.Array
.newInstance(original.getClass().getComponentType(), length - 1);
System.arraycopy(original, 0, dest, 0, pos);
System.arraycopy(original, pos + 1, dest, pos, length - pos - 1);
return dest;
本回答被提问者采纳
c语言数组排序好输出问题
假设已经有一个排序好的数组,要求输入一个数,判断这个数在该数组中是否存在,如果存在将该数删除后输出,如果没有,将该数插入到该数组中,插入后数组仍是排序好的。然后输出。
参考技术A #include <stdio.h>#define SIZE 100
int main(void)
int i, j;
int n;
int num;
int flag = 1;
int arr[SIZE] = 1, 5, 11, 13, 22, 35;
n = 6;
printf("请输入一个数:");
scanf("%d", &num);
for (i=0; i<n; i++)
if (num == arr[i])
flag = 0;
for (j=i; j<n-1; j++)
arr[j] = arr[j+1];
n--;
break;
if (1 == flag)
for (i=0; i<n; i++)
if (num < arr[i])
for (j=n-1; j>=i; j--)
arr[j+1] = arr[j];
arr[i] = num;
n++;
break;
printf("输出:\n");
for (i=0; i<n; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
本回答被提问者采纳 参考技术B gdhfghdfghfghfdghdhfdghhg 参考技术C 楼上正解 参考技术D 楼上的楼上正解
以上是关于如何在一个一维数组中插入一个和删除一个数的主要内容,如果未能解决你的问题,请参考以下文章
C程序:一维数组x中的若干个数已按从小到大的顺序有序;在主函数中输入一个数,调用一个insert函数将其插