Java学校练习
因此,我必须编写一个名为“insert”的新类方法insert所做的是,它接受参数Item[]数组、Item newitem和int k,并将新项插入索引k处的数组中
部分代码我可以更改,部分代码我无法更改。以下是我无法更改的部分:
原来的指示:
为接受三个参数(Item[]数组、Item newItem和int k)的Item类编写一个新的类方法insert,并将newItem插入索引k处的数组,丢弃数组的最后一项(即最初位于index 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 );
}
}
我得到一个“找不到符号”错误
更新:
我这样试过:
公共静态void插入(项[]数组、项newItem、int k)
{
对于(int i=0;i<;array.length()-1;(i++){
array[i] = array[i-1];
}
}
我仍然得到相同的错误,只是for循环的第一行,而不是错误消息中的“array[I]=array[I-1]”
# 1 楼答案
这永远无法编译。原因是您从未声明名为“a”的变量或名为“i”的变量
# 2 楼答案
在你的代码中,我没有定义。a两者都不是。您需要在这里编写一些代码,将k之后的所有元素移动到数组的末尾