2014-09-22 4 views
0

Я создал два массива. Я добавил их. Затем я хотел распечатать новый массив, указав метод. Но метод не может распечатать массив. Где ошибка в моем коде?ArrayList не распечатывается

package stringpractice; 

import java.util.LinkedList; 
import java.util.List; 

public class StringPractice { 

    public static void main(String[] args) { 

     String[] boy = {"John", "Russel", "Ryan"}; 
     List<String> l1 = new LinkedList<String>(); 

     for (String x : l1) { 
      l1.add(x); 

     } 

     String[] girl = {"Sara", "Leena", "Emilia"}; 
     List<String> l2 = new LinkedList<String>(); 
     for (String y : l2) { 

      l2.add(y); 
      l1.addAll(l2); 
      l2 = null; 
      printMe(l1); 

      /*removeStuff(l1, 1,2); 
      reverseMe(l1); 
      */ 
     } 

    } 

    public static void printMe(List<String> l1) { 
     for (String p : l1) { 
      System.out.printf("%s ", p); 
     } 
     System.out.println(); 

    } 

} 

ответ

0

для-петли пройти через все еще пустые списки.

for (String x : boys) { 
     l1.add(x); 
    } 

Или

Collections.addAll(l1, boys); 

Установка l2 в нуль не будет повторяться хорошо. А addAll можно сделать за пределами цикла.

+0

точно, это помогает. – SomeOneSomewhere

0

Печатать в вашем списке нечего. Вам нужно изменить

for (String x : l1) // l1 don't have a single element 
        // at this moment 

и

for (String y : l2) // same as l1 

Для

for (String x : boy) 

и

for (String x : girl) 

Опять

l2.add(y); 
l1.addAll(l2); 
l2 = null; // inside for lopp l2 become null 

Итак, вы получите NPE отсюда.

Исправленный код

public static void main(String[] args) { 
    String[] boy = {"John", "Russel", "Ryan"}; 
    List<String> l1 = new LinkedList<>(); 
    for (String x : boy) { 
     l1.add(x); 
    } 
    String[] girl = {"Sara", "Leena", "Emilia"}; 
    List<String> l2 = new LinkedList<>(); 
    for (String y : girl) { 
     l2.add(y); 
     l1.addAll(l2); 
     printMe(l1); 
    } 
    l2 = null; 
} 

public static void printMe(List<String> l1) { 
    for (String p : l1) { 
     System.out.printf("%s ", p); 
    } 
    System.out.println(); 
} 
0

Ваш номер ListL1 и L2 пустые. поэтому ваше тело цикла for не выполняется.

0

общественного класса StringPractice { государственной статической силы основных (String [] арг) {

String[] boy = { "John", "Russel", "Ryan" }; 
    List<String> l1 = new ArrayList<String>(Arrays.asList(boy)); 

    String[] girl = { "Sara", "Leena", "Emilia" }; 
    List<String> l2 = new ArrayList<String>(Arrays.asList(girl)); 

    l1.addAll(l2); 
    l2 = null; 
    printMe(l1); 

    /*removeStuff(l1, 1,2); 
    reverseMe(l1); 
    */ 

} 

public static void printMe(List<String> l1) { 
    for (String p : l1) { 
     System.out.printf("%s ", p); 
    } 
    System.out.println(); 

} 
0

Вы Арент обходе массив boy[] и girl[] в любом месте. Некоторый результат нужно повторить, например, for (String x : boy).

+0

Ваш ответ помогает, вот что я хотел. к сожалению, я не могу одновременно принимать два ответа. В противном случае я отвечу на ур, как принято. – SomeOneSomewhere

0

Вам необходимо выполнить итерацию через массив [] и девушку [], чтобы напечатать там содержимое

Смежные вопросы