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

标签 java

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

相关文章:

Java 方法从数组列表返回

java - 错误 : Logcat capture failed: spawn ENOENT

java - 删除菜单 Java Android

java - 替代小程序的替代技术?

java - 解析使用跟踪器的 Java 属性文件中的用户名

java - 如何以编程方式增加Android中的文本数量

java - G1 垃圾收集器日志分析器

java - 局部字符串变量未初始化错误

java - groovy 需要加载源文件

java - 字符串对象和字符串文字之间的区别