2014-09-22 2 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); 
    } 

또는 잘하지 않습니다 루프를 null로 (L2)를 설정

Collections.addAll(l1, boys); 

. addAll은 루프 외부에서 수행 할 수 있습니다.

+0

인 것이 정확합니다. – SomeOneSomewhere

0

목록에는 아무 것도 인쇄 할 사항이 없습니다. 당신은 다시

for (String x : boy) 

for (String x : girl) 

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

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

을 변경해야

여기에서 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

ListL1L2 모두 비어 있습니다. 그래서 두 for 루프 본문은 실행되지 않습니다.

0

공용 클래스 StringPractice { 공공 정적 무효 메인 (문자열 []에 args) {

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[] 배열을 가로 지르는이 arent. 어떤 결과를 얻으려면 for (String x : boy)처럼 반복해야합니다.

+0

답변이 도움이됩니다. 불행히도 나는 동시에 두 가지 대답을 인정할 수 없다. 그렇지 않으면 나는 받아 들여진 것처럼 대답을 넣어. – SomeOneSomewhere

0

내용을 인쇄하려면 소년 []과 소녀 [] 배열을 반복해야합니다. 내용이

관련 문제