我在启动这个程序时遇到了问题。我应该编写一个程序,通过向用户询问 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/