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

for循环遍历仍然为空的列表。

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

   Collections.addAll(l1, boys);

将l2设置为null不会很好地循环。addAll可以在循环之外完成。

您的列表中没有可打印的内容。您需要更改

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

您的List L1L2都为空。所以不执行您的两个for循环体。

公共类StringPractice{public static void main(String[]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();
}

您不能在任何位置遍历boy[]girl[]数组。您需要像for (String x : boy)一样迭代才能得到一些结果。

您需要遍历boy[]和girl[]数组,以便打印内容

相关内容

  • 没有找到相关文章

最新更新