4

I would like to print a List in Java.

r1
r2
r3
r4

Here is the code:

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);
}

How do I get it print my list rather then:

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

4 回答 4

13

在你的课堂上,你有:

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;

于 2013-08-06T22:16:40.307 回答
3

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

下拉列表

java.util.List 是一个有序集合,用于存储数据。(来源

尝试从

import java.awt.List;

import java.util.List;
于 2013-08-06T22:40:42.543 回答
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);
    }

}

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

于 2013-08-06T22:38:54.937 回答
1

最正确的方法可能是使用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);
于 2013-08-06T22:54:34.803 回答