2014-03-01 205 views
-6

因此,我必须编写一个名为“insert”的新类方法。什么插入操作,是否需要参数Item [] array,Item newitem和int k,并将新项插入到索引为k的数组中。Java学校练习

此代码的一部分,我可以更改,部分代码我不能。这里是一部分,我不能改变:

说明原先提出:

写了一类新方法,插入,Item类带有三个参数 - 一个项目[]数组,一个项目的newitem,和一个int k - 并将newItem插入到索引为k的数组中,放弃数组的最后一项(即最初位于索引array.length - 1的项目)。

这里是不变的代码:

public class Item 
{ 
    private int myN; 

    public Item(int n) 
    { 
    myN = n; 
    } 

    public String toString() 
    { 
    return "Item:" + myN; 
    } 

    public int getN() 
    { 
    return myN; 
    } 

    public static Item[] makeItemArray(int len) 
    { 
    Item[] a = new Item[ len ]; 
    int i; 
    for (i = 0 ; i < len ; i++) 
     a[ i ] = new Item(i); 
    return a; 
    } 

    public static void displayArray(Item[] array) 
    { 
    for (Item item : array) 
     System.out.println(item); 
    } 

//这小部分,我可以改变:

public static void insert(Item[] array, Item newItem, int k) 

{ 

    a[i] = a[i + 1]; 

} 

//这是所有我可以改变

} 

public class MainClass 
{ 
    public static void main(String[] args) 
    { 
    Item[] array = Item.makeItemArray(); 

    System.out.println("Before: "); 
    Item.displayArray(array); 

    // make a new Item 
    Item newItem = new Item(99); 

    // insert the new item 
    Item.insert(array, newItem, ); 

    System.out.println("\nAfter: "); 
    Item.displayArray(array); 
    } 
} 

我得到一个“找不到符号”错误。

UPDATE:

我尝试了这样的:

公共静态无效插入件(项[]数组,项目的newitem,INT K)

{

的for(int i = 0; i < array.length() - 1; i ++){

array[i] = array[i-1]; 

}

}

我仍然得到同样的错误,只需用for循环,而不是 “阵列[I] =阵列[I-1]” 中的错误消息的第一行。

+2

你从哪里得到那个错误? –

+0

在'insert'方法中,你的'i'和你的'a'是什么?这就是你的问题...... –

回答

0

在你的代码中,我没有定义。一个都不是。您需要在此处编写一些代码将k后面的所有元素移动到数组的末尾。

+0

什么样的代码会在k加1后移动所有的元素?我只是想从概念上想,我该怎么做? – user3363511

+0

A for循环会执行此操作,但先移动最后一个,以免覆盖每个循环。 for(int i = ...; i> ...; --i)array [i] = array [i-1]; –

0

这永远不能编译。原因是你永远不会声明名为“a”的变量或名为“i”的变量

+0

在我无法编辑的部分中没有定义它。在编辑它们之前没有任何部分,这是可编辑的。我可以在代码段后面的代码中定义一些东西吗? – user3363511