【问题标题】:stuck on not being able to view contents of an array list卡在无法查看数组列表的内容
【发布时间】:2016-03-24 08:03:27
【问题描述】:

我对 java 很陌生,发现很难习惯这些术语,我已经搜索了互联网,但我尝试的所有方法都不起作用,因为我不知道如何在我的代码中正确实现它......如何我可以简单地让控制台显示我在数组列表中输入的内容吗?谢谢

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Account {
    List<String> name = new ArrayList<>();
    List<String> address = new ArrayList<>();
    List<String> createOption = new ArrayList<>();
    List<String> sortCode = new ArrayList<>();
    List<Integer> deposit = new ArrayList<>();
    List<Double> accountNumber = new ArrayList<>();

    Scanner keyboard = new Scanner(System.in);

    public void accountCreation() {
        String name = "", address = "", createOption = "", sortCode = "", deposit = "";
        double accountNumber = 0;
        boolean valid = false;
        while (!valid) {
            System.out.println("What account would you like to create?");
            System.out.println("Current or savings?");
            createOption = keyboard.nextLine();
            if (createOption.equalsIgnoreCase("current") || createOption.equalsIgnoreCase("savings")) {
                valid = true;
            } else {
                System.out.println("Please enter checking or savings");
            }
        }
        System.out.print("Please enter your name:");
        name = keyboard.nextLine();
        System.out.print("Please enter your address");
        address = keyboard.nextLine();
        System.out.print("Please enter an initial deposit");
        deposit = keyboard.nextLine();
        System.out.print("Please enter an sort code ");
        sortCode = keyboard.nextLine();
        System.out.print("Please enter an account number");
        accountNumber = Double.parseDouble(keyboard.nextLine());
        valid = false;

        System.out.println();
    }
}

【问题讨论】:

  • 遍历列表并打印内容,还有什么办法?
  • @Stultuske 在此之前将值放入这些列表中:)
  • 作为旁注,判断您的 List 的我怀疑您应该创建一个具有 6 个实例变量的类,并且只保存该类的一个 List
  • 但在你问这个之前,为什么你有姓名、地​​址等列表?班级是Account;你需要每个的单一表示和List&lt;Account&gt;
  • @sᴜʀᴇsʜᴀᴛᴛᴀ 并非不重要,但问题是:如何打印我输入的内容? :)

标签: java arrays get


【解决方案1】:

我更改了您的完整名称,因为您的代码无法打印任何内容,因为缺少 ma​​in 方法:

public class Account {
public static void main(final String[] args) {
    new Account().accountCreation();
}

List<String> names = new ArrayList<String>();

public void accountCreation() {

    final Scanner keyboard = new Scanner(System.in);

    System.out.print("Please enter your name:");
    names.add(keyboard.nextLine());
    for (final String name : names) {
        System.out.println("Name: " + name);
    }
}

}

您可以以类似的方式完成其余的工作。 (ArrayList 只有在你想要有很多条目时才有意义;如果你需要循环的话。) ....

【讨论】:

  • 这个答案我的声望分数减少了 20 分?怎么了?至少给出一个理由是公平的。
  • 我没有看到由于这篇文章(或任何地方)而导致的任何代表减少。您可以查看您的代表here。也许有几个人在投票后改变了主意,而您又回到了原来的代表。
  • @ChiefTwoPencils 感谢您提供信息。我在这里相对较新,除了我少了 20 分外,不明白发生了什么。所以我想我可能做了一些违反使用规则的事情。
【解决方案2】:

你做错了。您必须使用 add() 将项目添加到 ArrayList

例如:

name.add(keyboard.nextLine());

为了显示ArrayList 中的项目,您可以使用如下循环:

for(String n : name) {
    System.out.println("Name: " + n);
}

您必须为程序中的所有其他 ArrayLists 更正它。

【讨论】:

  • 这给出了一个错误“方法 add(string) 未定义类型字符串
  • 好吧,我打错了啊哈,在显示部分,for(string name : names) 位是什么? “名称”下存在错误(名称无法解析为变量)
  • names 应该是您的 ArrayList 的名称。我刚刚意识到它是name 而不是names。您可以查看更新的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多