2014-12-28 8 views
0

У меня есть список массивов, я ввожу что-то в него, и он сохраняет только последнее, что я набрал, но мне нужны вещи, которые были напечатаны ранее. Как это исправить?Добавление пользователя в ArrayList

Scanner input = new Scanner(System.in); 

ArrayList arrayListOne; 
arrayListOne = new ArrayList(); 
ArrayList<String> letterArray = new ArrayList<String>(); 
for(int i = 0; i < letterArray.size(); i++) { 
    System.out.println(letterArray.get(i)); 
} 

System.out.println("Type a string:"); 
letterArray.add(input.nextLine()); 
System.out.println("Number of string in array: " + letterArray.size()); 
+3

Ваш код просто запрашивает одну строку от пользователя и выводит его, поэтому его работы, как и ожидалось. Во-вторых, я не понимаю цели arrayListOne. – Lokesh

+0

. У вас больше шансов получить помощь, если вы предоставите фактический ввод, фактический результат и ожидаемый результат. –

+0

Я не думаю, что ваш вопрос ясен! Прежде всего, что делает 'arrayListOne'? во-вторых, все, что вы набрали, было сохранено в 'letterArray'! – Arijoon

ответ

3

Вы добавляете только одну строку в массив ArrayList. Если вы хотите, чтобы он отображал много строк, сначала вам нужно добавить несколько строк, возможно, в какой-то цикл, такой как цикл for или while. Затем, добавив весь текст, создайте еще один цикл, чтобы отобразить все.

например. так как это звучит как домашнее задание, гораздо лучше, чтобы показать, что я имею в виду в псевдокоде (и стыду для всех, кто обманывает вас из опыта пытается закодировать это самостоятельно ложкой кормления вам решение):

create array list 
entry String equals "" 
do this loop 
    get input from user 
    put it into entry String 
    add entry String into array list 
while entry String doesn't equal "quit" 
for each item in array list 
    println each item 
end for loop 
+1

Плюс один на урок рыбалки. –

+0

Это не домашнее задание, просто попытка узнать, как работают массивы –

-2

Попробуйте следующее, чтобы отобразить список и продолжать добавлять новые буквы:

Scanner input = new Scanner(System.in); 

ArrayList arrayListOne; 
arrayListOne = new ArrayList(); 
ArrayList<String> letterArray = new ArrayList<String>(); 

while(true) { 
    System.out.println("Type a string:"); 
    letterArray.add(input.nextLine()); 
    System.out.println("Number of string in array: " + letterArray.size()); 
    // Display eveything in the list 
    displayList(letterArray); 
} 


// Somewhere in your class add this method 
public void displayList(ArrayList letterArray) { 
    for(int i = 0; i < letterArray.size(); i++) 
    System.out.println(letterArray.get(i)); 
} 

и для г-нытик здесь, кто не может добавить простую структуру класса я выложу полный код:

import java.util.ArrayList; 
import java.util.Scanner; 

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

    ArrayList arrayListOne; 
    arrayListOne = new ArrayList(); 
    ArrayList<String> letterArray = new ArrayList<String>(); 

    while(true) { 
     System.out.println("Type a string:"); 
     letterArray.add(input.nextLine()); 
     System.out.println("Number of string in array: " + letterArray.size()); 
     // Display eveything in the list 
     displayList(letterArray); 
    } 
    } 


    public static void displayList(ArrayList letterArray) { 
    for(int i = 0; i < letterArray.size(); i++) 
     System.out.println(letterArray.get(i)); 
    } 
} 
+1

Вы пытались запустить свой код? Или, по крайней мере, попытайтесь скомпилировать? –

+0

Да! Должен ли я опубликовать свой полный код со всей структурой класса? Я просто показал пример того, как проблема может быть исправлена! не показывая полное решение! – Arijoon

+0

Сколько времени прошло? –

0
private static List<String> getAndPrintInputFromUser() { 

    Set<String> ids = new TreeSet<String>(); //used set for making list as unique 
    Scanner input = new Scanner(System.in); 
    System.out.println("\nEnter each value\n" + 
      "and Put an extra ENTER ."); 
    do{ 

     String x = input.nextLine(); 

     if(x==null || StringUtils.isEmpty(x.trim())){ 
      break; 
     }else { 
      ids.add(x); 
     } 

    }while(true); 

    for(String id : ids) 
     System.out.println(id); 

    return new ArrayList<String>(ids); 
} 

Выход:

Enter each value 
and Put an extra ENTER. 
TP6100010 
TP6100015 
TP6100019 


TP6100010 
TP6100015 
TP6100019 
Смежные вопросы