【问题标题】:How to print different parts of a List in Java如何在 Java 中打印列表的不同部分
【发布时间】:2017-05-07 16:06:38
【问题描述】:

我想知道如何在 Java 中打印一个 List,其中每个位置都有一个 String 和一个 int。

List pasajeros = new ArrayList();

我这样插入数据:

public void insert(List a) {
        System.out.print("Name: ");
        name= sc.nextLine();
        System.out.print("Number: ");
        number= sc.nextInt();
        ClassName aero = new ClassName(name, number);
        a.add(aero);
    }
}

它似乎像这样工作,但在 syso 中给了我一个错误。

【问题讨论】:

  • List<ClassName> pasajeros = new ArrayList<>(); 不要使用raw types
  • ...但是在 syso 中给了我一个错误。什么错误??
  • @ΦXocę웃Пepeúpaツ 它打印此列表。Aerolinea@154617c
  • 那么您的问题不在于插入,而在于打印出该列表所包含的对象,在这种情况下,您的 foo 类必须正确覆盖 toString 方法....

标签: java arrays list arraylist printing


【解决方案1】:

所以你有一个ClassName 的列表。

要打印它们,您可以简单地使用 for 循环:

List<ClassName> pasajeros = new ArrayList<>();
// + insert elements
for (ClassName cn : pasajeros) {
    System.out.println("Name: " + cn.getName() + ", number: " + cn.getNumber());
}

【讨论】:

  • 我已经尝试过了,使用 "public void see (List a){ for (Classname cn : a) System.out.println(a.getName()...); } 并强调a 和 getName 说“类型不匹配:无法从元素类型 Object 转换为 Classname”和“方法 getName() 未定义类型 List”
【解决方案2】:

您正在打印一个对象而不覆盖 toString 方法..

list.Aerolinea@154617c 表示您正在打印对象哈希码。 所以您的问题不在于插入,而在于打印出列表所包含的对象,在这种情况下,您的 Aerolinea 类必须正确覆盖 toString 方法。

类似:

class Aerolinea {
    private String nombre;
    private String apellido;
    @Override
    public String toString() {
    return "Aerolinea [nombre=" + nombre + ", apellido=" + apellido + "]";
    }
}

【讨论】:

    【解决方案3】:

    在你的类中尝试像 put 方法 toString...

    public class Aerolinea {
    String nombre;
    .......
    .......
    public String toString() {
        return "nombre" = nombre;
        }
    }
    

    【讨论】:

      【解决方案4】:

      好吧,我终于修好了,太傻了…… 我忘了在方法中写 。这是最终代码

      public void vertodo(List<Aerolinea> a) {
          for (Aerolinea cn : a) {
              System.out.println("Name: " + cn.name+ " ID: " + cn.id);
          }
      }
      

      因为我像List pasajeros = new ArrayList(); 一样创建它,所以我将其更改为List&lt;Aerolinea&gt; pasajeros = new ArrayList();

      虽然我不能像一些人推荐的那样在 ArrayList 之后写最后的 空。

      【讨论】:

        猜你喜欢
        • 2020-02-11
        • 1970-01-01
        • 2017-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-12
        相关资源
        最近更新 更多