2013-08-06 3 views
3

Я хотел бы напечатать список на Java.Распечатать список на 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] 
+1

You proabably хотите использовать 'java.util.ArrayList', а не' java.awt.List', он будет распечатываться в формате diff . Классы 'awt' - это элементы управления графическим интерфейсом. – BevynQ

+0

. Вы уже получили предложения, но я хотел бы упомянуть, что вы используете цикл' for' для итерации по вашему списку и 'System.out.print' для печати всех элементов на той же линии. –

ответ

12

На вершине своего класса у вас есть:

import java.awt.List; 

Однако java.awt.List описывает графический интерфейс и, вероятно, не то, что вы хотите. Для того, чтобы использовать структуру данных 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;

+0

Обратите внимание, что 'import java.util.List;' сделает 'List' доступным, но не' ArrayList'. Таким образом, вышесказанное не будет компилироваться. Вам нужно либо добавить 'import java.util.ArrayList;', либо (мое предпочтение) изменить его на 'import java.util. *;'. – ajb

+0

@ajb: Обновлен ответ, чтобы включить эту информацию. – jlordo

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

} 

Вместо печати ваш пользователь вводит объект вместо этого.

+0

Ответы должны иметь текстовое объяснение/описание. Проводка только кода поощряет «обработку груза» и не помогает с пониманием. –

+0

@Tim: Спасибо. Обновлено. – NONE

3

java.awt.List является компонентом List (как выпадающий список, как вы бы видеть в GUI) (source.)

A drop down list

Где java.util.List это упорядоченная коллекция для вы должны хранить свои данные. (source)

Попробуйте изменить импорт (как jlordo упоминалось) от

import java.awt.List; 

в

import java.util.List; 
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); 
Смежные вопросы