【问题标题】:Print a list in Java?用Java打印一个列表?
【发布时间】:2013-08-08 03:02:46
【问题描述】:

我想用 Java 打印一个列表。

r1
r2
r3
r4

代码如下:

public static final void main(String args[]) {

    Scanner a = new Scanner(System.in);

    String r1, r2, r3, r4;

    System.out.print("Enter word..");
    r1 = a.next();

    System.out.print("Enter second word");
    r2 = a.next();

    System.out.print("Enter third word");
    r3 = a.next();

    System.out.print("Enter last word");
    r4 = a.next();

    List list = new List();
    list.add(r1);
    list.add(r2);
    list.add(r3);
    list.add(r4);

    System.out.println(list);
}

我如何让它打印我的列表而不是:

java.awt.List[list0,0,0,0x0,invalid,selected=null]

【问题讨论】:

  • 您可能想使用java.util.ArrayList 而不是java.awt.List,它将以不同的方式打印出来。 awt 类是 GUI 控件
  • 您已经得到的建议要好得多,但我仍然想提一下,您使用for 循环遍历您的列表并使用System.out.print 打印同一行上的所有元素。

标签: java list printing


【解决方案1】:

除了你的课程之外,你还有:

import java.awt.List;

但是,java.awt.List 描述了一个 GUI 组件,可能不是您想要的。要使用数据结构List,请将导入更改为:

import java.util.List;

由于java.util.List<E>是一个通用接口,你也应该适当地使用它:

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

表达式System.out.println(list); 将打印List 对象,该对象可能显示也可能不显示内容(取决于toString 的实现)。要显示列表的内容,需要对其进行迭代:

for ( String str : list ) {
    System.out.println(str);
}

如评论中所述,此解决方案仅在您也 import java.util.ArrayList; 时才有效

【讨论】:

  • 请注意,import java.util.List; 将使List 可用,但ArrayList 不可用。因此,上述内容将无法编译。您需要添加import java.util.ArrayList;,或者(我的偏好)将其更改为import java.util.*;
  • @ajb:更新了答案以包含该信息。
【解决方案2】:
import java.util.ArrayList;

public class Example
{

public static void main(String args[])
{
    Scanner a = new Scanner(System.in);

    String r1, r2, r3, r4;

    System.out.print("Enter word..");
    r1 = a.next();

    System.out.print("Enter second word");
    r2 = a.next();

    System.out.print("Enter third word");
    r3 = a.next();

    System.out.print("Enter last word");
    r4 = a.next();

    ArrayList<String> list = new ArrayList<>();
    list.add(r1);
    list.add(r2);
    list.add(r3);
    list.add(r4);

    for ( String str : list )
    {
        System.out.println(str);
    }

}

您打印的是对象,而不是打印用户的输入。

【讨论】:

  • 答案应该有一些文字解释/描述。仅发布代码会鼓励 cargo-culting 并且无助于理解。
  • @Tim:谢谢。已更新。
【解决方案3】:

java.awt.List 是 List 组件(就像您在 GUI 中看到的下拉列表) (source.)

其中 java.util.List 是一个有序集合,供您存储数据。 (source)

尝试从

更改您的导入(如 jlordo 所述)
import java.awt.List;

import java.util.List;

【讨论】:

    【解决方案4】:

    最正确的方法可能是使用StringBuilder

            List<String> list = new ArrayList<String>();
    
            //Add the stuff here.
            ...
    
            StringBuilder sb = new StringBuilder();
            for(String s: list)
                sb.append(s + " ");
    
            System.out.println(sb);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 2012-08-24
      相关资源
      最近更新 更多