【问题标题】:print arraylist element?打印数组列表元素?
【发布时间】:2010-01-12 06:00:55
【问题描述】:

如何将arraylist“list”中的元素“e”打印出来?

 ArrayList<Dog> list = new ArrayList<Dog>();
 Dog e = new Dog();
 list.add(e);
 System.out.println(list);

【问题讨论】:

    标签: java


    【解决方案1】:

    您是要打印整个列表还是要遍历列表的每个元素?无论哪种方式打印任何有意义的内容,您的 Dog 类都需要覆盖 Object 类中的 toString() 方法(如其他答案中所述)以返回有效结果。

    public class Print {
        public static void main(final String[] args) {
            List<Dog> list = new ArrayList<Dog>();
            Dog e = new Dog("Tommy");
            list.add(e);
            list.add(new Dog("tiger"));
            System.out.println(list);
            for(Dog d:list) {
                System.out.println(d);
                // prints [Tommy, tiger]
            }
        }
    
        private static class Dog {
            private final String name;
            public Dog(final String name) {
                this.name = name;
            }
    
            @Override
            public String toString() {
                return name;
            }
        }
    }
    

    这段代码的输出是:

    [Tommy, tiger]  
    Tommy  
    tiger
    

    【讨论】:

      【解决方案2】:

      首先确保Dog类实现了方法public String toString()然后使用

      System.out.println(list.get(index))
      

      其中 index 是列表中的位置。当然,既然你提供了你的实现,你就可以决定狗如何打印自己。

      【讨论】:

      • 我同意只接受不赞成票并附上解释的话是合理的。
      【解决方案3】:

      这里是 Java8 的更新解决方案,使用 lambdas 和流:

      System.out.println(list.stream()
                             .map(Object::toString)
                             .collect(Collectors.joining("\n")));
      

      或者,不将列表加入一个大字符串:

      list.stream().forEach(System.out::println);
      

      【讨论】:

        【解决方案4】:

        您的代码要求Dog 类已覆盖toString() 方法,以便它知道如何将自己打印出来。否则,您的代码看起来是正确的。

        【讨论】:

          【解决方案5】:

          您应该在 Dog 类中覆盖 toString() 方法。当你在 sysout 中使用这个对象时会调用它。

          【讨论】:

            【解决方案6】:

            打印特定元素是

            list.get(INDEX)
            

            我认为一次性打印整个列表的最佳方法,这也可以避免循环

            Arrays.toString(list.toArray())

            【讨论】:

              【解决方案7】:

              如果你想打印一个带有整数的数组列表,例如你可以使用下面的代码。

              class Test{
                  public static void main(String[] args){
                      ArrayList<Integer> arraylist = new ArrayList<Integer>();
              
                      for(int i=0; i<=10; i++){
                          arraylist .add(i);
                      }
                     for (Integer n : arraylist ){
                          System.out.println(n);
                     }
                 }
              }
              

              输出如上代码:

              0
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-05-10
                • 2011-03-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多