import java.util.Scanner;public class Test {
public void Test() { } public static void main(String[] args) throws Exception{
Test test = new Test();
int array[] = { 1, 2, 3, 4, 5 };
int lenght = array.length;
Scanner can = new Scanner(System.in);
System.out.println("从键盘上输入要插入的一个数");
// 要插入的数字
int m = can.nextInt();
System.out.println("从键盘上输入要插入位置");
// 出入的位置
int n = can.nextInt(); test.TDemo(array, lenght, m, n);
// 输出原数组
System.out.println("原数组");
for (int j = 0; j < lenght; j++) {
System.out.print(array[j] + "\t");
}
System.out.println(); } public  void TDemo(int[] array, int lenght, int m, int n) {
int i=0;
if (lenght > array.length) {// 表的空间已满,不能插入
System.out.println("表的空间已满,不能插入");
}
else if (n < 0 || n > array.length) {// 插入位置是否正确
System.out.println("插入位置不正确");
}
else{
for(i=array.length-1;i>=n;i--){
array[i+1]=array[i];
}
array[n] = m;
lenght++;
System.out.println("插入后的数组");
for ( i = 0; i < lenght; i++)
System.out.print(array[i] + "\t");
} }
}

解决方案 »

  1.   

    强烈建议楼主,把程序中的int数组改成vector类型。
      

  2.   

    你定义的int数组初始化的时候已经定义了大小,之后是不能随便插入数据的,也就是数组的大小是不能变的!!!
    vector也是一种数据类型,不过大小是可变的!要想详细了解 请查API
      

  3.   

    但是还是有错误啊,那你帮我解决一下,并且在Eclipse上运行一下,
      

  4.   

    我用ArrayList帮你改的,数组是不可变的,ArrayList和Vector都是可变数组,你的程序要实现数组元素的添加和删除可以用这两个类,自己用数组写比较麻烦import java.util.*;public class Test
    {
    public Test()
    {}

    public void tDemo(ArrayList<Integer> arrayList, int m, int n)
    {
    if (n < 0 || n > arrayList.size())
    {
    System.out.println("插入位置不正确");
    }
    else
    {
    arrayList.add(n, m);
    }
    }

    public static void main(String[] args)
    {
    Test test = new Test();
    ArrayList<Integer> arrayList = new ArrayList<Integer>();
    //初始化arrayList
    for (int i = 1; i <= 5; i++)
    {
    arrayList.add(i);
    }

    Scanner can = new Scanner(System.in);
    System.out.println("从键盘上输入要插入的一个数");
    // 要插入的数字
    int m = can.nextInt();
    System.out.println("从键盘上输入要插入位置");
    // 出入的位置
    int n = can.nextInt(); //输出原数组
    System.out.println(Arrays.toString(arrayList.toArray()));

    test.tDemo(arrayList, m, n);
    //输出添加后的数组
    System.out.println(Arrays.toString(arrayList.toArray()));
    }
    }
      

  5.   

    你可以帮我用Vector类型改吗?ArrayList类型我不是很懂,谢谢
      

  6.   

    我晕,将ArrayList换成Vector 的操作:
    讲文中出现过的所有ArrayList写成Vector即可。两个的功能是一样的,都是集合,但是Vector的线程安全性更强,而且在JTable中不能使用ArrayList,Vector却可以使用。
      

  7.   


    import java.util.Scanner;
    import java.util.Vector;
    public class test {
    public test(){}
    public static void main(String[] args) throws Exception{
    Vector<Integer> ve = new Vector<Integer>();
    test test = new test();
    ve.add(1);
    ve.add(2);
    ve.add(3);
    ve.add(4);
    ve.add(5);
    Scanner can = new Scanner(System.in);
    System.out.println("从键盘上输入要插入的一个数");// 要插入的数字
    int m = can.nextInt();
    System.out.println("从键盘上输入要插入位置");// 出入的位置
    int n = can.nextInt();
    // 输出原数组
    System.out.println("原数组");
    for (int i = 0; i < ve.size(); i++){
    System.out.println(ve.get(i));

    //输出插入后的数组
    test.TDemo(ve, m, n);
    } public void TDemo(Vector<Integer> array, int m, int n) {
    if (n < 0 || n > array.size()) {// 插入位置是否正确
    System.out.println("插入位置不正确");
    }else{
    array.add(n, m);
    }
    System.out.println("插入后的数组:");
    for (int i = 0; i < array.size(); i++){
    System.out.println(array.get(i));

    }
    }这样就行了~~~~~~~~
      

  8.   

    由于数组是静态的不可变,所以可改为用Vector。改后代码如下:
    import java.util.*;
    public class Test3 {
    public void Test3() {}public static void main(String[] args) throws Exception{
    Test3 test = new Test3();
    Vector v=new Vector();
    v.add(1);
    v.add(2);
    v.add(3);
    v.add(4);
    int lenght = v.size();
    Scanner can = new Scanner(System.in);
    System.out.println("从键盘上输入要插入的一个数");
    // 要插入的数字
    int m = can.nextInt();
    System.out.println("从键盘上输入要插入位置");
    // 出入的位置
    int n = can.nextInt();// 输出原数组
    System.out.println("原数组:");
    System.out.println(v);
    test.TDemo(v, lenght, m, n);
    System.out.println("插入后的数组:");
    System.out.println(v);}public void TDemo(Vector v, int lenght, int m, int n) {
    int i=0;
    if (n < 0 || n > v.size()) {// 插入位置是否正确
    System.out.println("插入位置不正确");
    }
    else{
    for(i=v.size()-1;i>=n;i--){
    v.add(i+1,v.get(i));
    }
    v.add(i,m);

    }
    }