Java 将For循环的迭代索引传递给方法的参数

Java 将For循环的迭代索引传递给方法的参数,java,for-loop,arraylist,iterator,Java,For Loop,Arraylist,Iterator,第一个Java程序。我正在开发一个用于娱乐/自学的抽认卡应用程序,但我还不知道如何翻转卡片以显示背面 ArrayList(称为ready)包含我的Flashcard类的对象。 Flashcard的方法之一是showFront。 在MainProgram.java中,我将遍历ArrayList,在每次迭代时调用此方法以显示抽认卡的正面,然后等待键盘输入以决定下一步的操作: MainProgram.java: ArrayList<Flashcard> ready = new Ar

第一个Java程序。我正在开发一个用于娱乐/自学的抽认卡应用程序,但我还不知道如何翻转卡片以显示背面

ArrayList(称为ready)包含我的Flashcard类的对象。 Flashcard的方法之一是showFront。 在MainProgram.java中,我将遍历ArrayList,在每次迭代时调用此方法以显示抽认卡的正面,然后等待键盘输入以决定下一步的操作:

MainProgram.java:

    ArrayList<Flashcard> ready = new ArrayList<Flashcard>();
    ArrayList<Flashcard> entireDeck = new ArrayList<Flashcard>();

    // Create ten flashcards and add them to the pile "entireDeck"
    for(int counter = 0; counter < 10; counter++) {

        Flashcard FC = new Flashcard();
        entireDeck.add(FC);
    }

  (entireDeck.get(0)).addData(0,"A little","Un poco");
class Flashcard {
    public int cardNumber;
    public String word;
    public String translation;

// Add data to a flashcard
    public void addData(int cardNumber, String word, String translation){ 
        this.cardNumber = cardNumber;
        this.word = word;
        this.translation = translation;
    }

    public void showFront(int index) {
    System.out.println("Card #:\t\t" + cardNumber);
    System.out.println("Word:\t\t" + word + "\n\n");
    System.out.println("1) Replay audio\t 2) Flip card\t 3) Skip\n");

        Scanner nav = new Scanner(System.in);
        int userInput = nav.nextInt();
        switch (userInput) {
            case 1:
                System.out.println("Playing audio");
                break;
            case 2:
                System.out.println("Flipping card");
                showBack(**what to put here?**);
                break;
            case 3:
                System.out.println("Next card...");
                break;
            default:
                System.out.println("Invalid entry. Come back soon!\n");
                break;
        }
    }

    public void showBack(int index) {
        System.out.println("Card #:\t\t" + cardNumber);
        System.out.println("Translation:\t\t" + translation + "\n\n");
        System.out.println("1) Replay audio\t 2) Flip card\t 3) Skip\n");
    }
}
MainProgram.java中的for循环用于将flashcard添加到ready组中-我只是删除了大部分代码,以关注我遇到的问题

控制台正确显示卡的正面:

显示当前卡的控制台输出:

当然,它会按顺序显示下一张牌,因为我选择打破每一个开关盒,直到我知道如何正确地将正确的参数传递到showBack():

显示下一张卡的控制台输出:

同样,为了澄清/简洁,去掉不必要的代码

如果我错了,请纠正我,但我无法从MainProgram.java中的循环中获取变量I,并将其用作showBack()中的参数,因为I不是全局变量。我认为我只需要找到for循环的当前迭代,并将其用作showBack的参数,以便显示卡的背面

我确实意识到,最终我将不得不处理由于不使用nav.close()而导致的扫描仪内存泄漏

我觉得这是一个很容易的解决办法。
**编辑:**我应该使用指针吗

你为什么要把东西放在那里?请注意,
index
未在
showBack
中使用。这是我的问题。我把索引作为展示的论据。谢谢你指出这一点。