gpt4 book ai didi

java - 如何将 Int 添加到通用 Arraylist,我不确定我是否疯了或者是否不可能

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

我的任务是将一些代码从使用 Int[] 转换为使用 ArrayList。这样做时,我只允许编辑这些方法:Stack(int)、getStack()、setStack()、stackRead() 和 stackWrite()。当我这样做时,我收到了大量关于不同类型匹配的错误。

如前所述,我只能编辑 Stack(int)、getStack()、setStack()、stackRead() 和 stackWrite()。在编辑这些内容时,我想出了以下代码:

我的目标是使此代码使用 ArrayList,但它会产生很多问题,我尝试更改与泛型相关的所有内容并解析为 Int,但它给出了越界错误。

我已经尝试使用 .toArray 将 getStack() 更改为对象,但它仍然给我 ArrayIndexOutofBounds

public class Stack<E> {    
/**
* This ArrayList stores the values on the Stack, i.e., it is *the stack*.
*/
private ArrayList<E> mStack;

/**
/**
* Default constructor. Creates a Stack with capacity of 10 ints.
*/
public Stack() {
this(10);
}

/**
* This constructor creates a Stack with capacity of pCapacity. It initializes all three of
* the data members.
*
* @param pCapacity - The capacity of the Stack.
*/
public Stack(int pCapacity) {
setCapacity(pCapacity);
setStack(new ArrayList<E>(mCapacity));
setTop(0);
}

private ArrayList<E> getStack() {
return mStack;
}

public int peek() {
return (int)stackRead(getTop());
}



/**
* Removes the top element from the Stack.
*
* @return The top value.
*/
public int pop() {
int topValue = peek();
stackWrite(getTop(), 0);
decTop();
return topValue;
}

/**
* Pushes pValue onto the top of the stack.
*
* @param pValue - The value to be pushed onto the top of the stack.
*
* @return A reference to the Stack. This permits operations such as:
* myStack.push(1).push(2).push(3).push(4).
*/
public Stack push(int pValue) {
stackWrite(incTop(), pValue);
return this;
}4

/**
* Gets the value at index pIndex from the stack data structure and returns the value.
*
* @param pIndex the index into mStack where we are reading a value.
* @return The value at pIndex.
*/
private E stackRead(int pIndex) {
return getStack().get(pIndex);
}

/**
* Puts pValue into the stack data structure at index pIndex.
*
* @param pIndex The inex into mStack where we are writing pValue.
* @param pValue The value to be writtin into mStack.
*
* @return pValue.
*/
private int stackWrite(int pIndex, int pValue) {
//getStack().set(pIndex, pValue);

return pValue;
}

}

需要以某种方式编写代码,以便仅编辑允许的方法,同时从一维数组更改为通用 ArrayList

最佳答案

您无法在 ArrayList 中存储像 int 这样的基元。使用Integer类。

关于java - 如何将 Int 添加到通用 Arraylist,我不确定我是否疯了或者是否不可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55681070/

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