gpt4 book ai didi

java - 需要添加一个 add 方法,但每次都会收到不同的错误,我不知道其含义

转载 作者:行者123 更新时间:2023-12-02 02:57:03 25 4
gpt4 key购买 nike

在这个家庭作业中,我们将在名为 SimpleArrayList 的类中完成上面所示的 SimpleList 接口(interface)的实现。我们为您提供了起始代码,包括一个采用初始对象引用数组的构造函数。我们还提供了 get、set 和 size 方法的代码(您昨天已完成这些方法)以及删除方法的代码,以便让您了解如何处理 add。请注意,此时我们正在测试上面显示的整个界面。你的工作是完成添加。与 set 一样,您可以忽略无效索引。我们将测试它们。

我的代码在逻辑上是有意义的,但无法编译


public class SimpleArrayList {
/** Internal array for storing values. */
private Object[] array;

/**
* Create a list from an array of Objects.
*
* Copies references from the passed array so that
* modifications to this list will not affect the original array.
* We'll need to make copies of the array later to support add and remove,
* so this is the right thing to do now.
*
* @param originalArray original array of Objects used to create the list
*/
SimpleArrayList(Object[] originalArray) {
// Would normally need to defend against originalArray being null,
// but we'll defer that until later.
if (originalArray != null) {
array = new Object[originalArray.length];
for (int i = 0; i < originalArray.length; i++) {
array[i] = originalArray[i];
}
}
}

public Object get(int index) {
if (index < 0 || index >= array.length) {
return null;
}
return array[index];
}
public void set(int index, Object element) {
if (index < 0 || index >= array.length) {
return;
}
array[index] = element;
}


public int size() {
return array.length;
}

public Object remove(int removeIndex) {
if (removeIndex < 0 || removeIndex >= array.length) {
return null;
}

// remove returns the item being removed
Object toReturn = array[removeIndex];

// Create and populate our new smaller array. We use for loop syntax
// maintaining two indices.
Object[] newArray = new Object[array.length - 1];
int originalIndex = 0;
for (int newIndex = 0; newIndex < newArray.length; newIndex++) {
// Skip the spot that we are removing
if (newIndex == removeIndex) {
originalIndex++;
}
newArray[newIndex] = array[originalIndex];
originalIndex++;
}
array = newArray;
return toReturn;
}

public void add(int index, Object element)
{
Object[] newArray = new Object[array.length + 1];
int orIndex = 0;

for(int i =0; i< index; i++)
{
newArray[i] = array[orIndex];
orIndex++;
}

newArray[index] = element;

for(int i = index+1; i< newArray.length; i++)
{
newArray[i] = array[orIndex];
orIndex++;
}

array = newArray;
}



}

除了我编写的 add 方法之外,所有这些都已给出。我现在收到不同的错误,它说将 simplearraylist 实例化为我什至没有编写的列表的不兼容类型。

我的代码在逻辑上是有意义的,但无法编译。我只写了add方法,其他的都已经给出了。我基于删除方法

最佳答案

它必须实现接口(interface)SimpleList

关于java - 需要添加一个 add 方法,但每次都会收到不同的错误,我不知道其含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com