gpt4 book ai didi

java - 需要有关 ArrayList 和 Stack 的帮助

转载 作者:行者123 更新时间:2023-11-30 09:50:32 25 4
gpt4 key购买 nike

我在启动这个程序时遇到了问题。我应该编写一个程序,通过向用户询问 10 个数字来填充 ArrayList

在创建列表后,我要对其进行导航,如果数字是偶数,则将其从 ArrayList 中删除,并将该数字放入 Stack 整数中.到目前为止,我已经有了这个,但我对如何启动堆栈感到困惑,以便我可以将偶数放入其中:

import java.io.* ;
import java.util.*;

public class Test {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);

ArrayList<Integer> test = new ArrayList<Integer>();
Stack<Integer> myStack = new Stack<Integer>();

System.out.print ("Enter Number: \n");

for (int i = 0; i < 10; i++) { //Put Into ArrayList
test.add(input.nextInt());
}

System.out.print("Contents of Array: " + test );
System.out.print("\n");

for (int i= 0; i < 10 ; i++) {
int item = myIterator.getNext();
if (item % 2 == 0) {
myListIterator.remove(); //removes it from the ArrayList
myStack.push(item); //puts it into the stack
}

}

System.out.print("Contents of Array afer numbers removed: " + test );
System.out.print("\n");
}
}

最佳答案

看来你只需要初始化堆栈就可以了。对初始化测试数组的堆栈进行初始化。

把这个:

 Stack<Integer> item = new Stack <Integer> ();

之后:

ArrayList<Integer> test = new ArrayList<Integer>();

编辑——我觉得很慷慨,所以我为你完成了它;)你实际上几乎一直在那里,所以我不觉得我真的剥夺了你学习的机会。您唯一缺少的另一件事是初始化迭代器并正确使用它。

注意以下几点:

-- 你会发现,如果你使用迭代器,你就可以摆脱 for 循环。
-- 我更改了变量的名称,这样它们更容易理解——命名很重要。
-- 最后,由于是 ArrayList ISA 列表,您会注意到我更改了输入值的声明以使用声明接口(interface)。

import java.util.*;

public class Test {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
List<Integer> inputValues = new ArrayList<Integer>();
Stack<Integer> evens = new Stack <Integer> ();

System.out.print("Enter Number: \n");

for (int i = 0; i < 10; i++) { //Put Into ArrayList
inputValues.add(input.nextInt());
}

System.out.println("Contents of Array: " + inputValues);

Iterator<Integer> iter = inputValues.iterator();

while(iter.hasNext()) {
Integer currentVal = iter.next();
if (currentVal % 2 == 0) {
iter.remove(); //removes it from the ArrayList
evens.push(currentVal); //puts it into the stack
} else {
System.out.println("No");
}


}

System.out.println("List values " + inputValues);
System.out.println("Stack values " + evens);
}
}

关于java - 需要有关 ArrayList 和 Stack 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5124404/

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