我创建了两个数组。我把它们加起来。然后我想通过定义一个方法打印出新的数组。但该方法无法打印出阵列。我的代码中的错误在哪里?
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 :(得分: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();
}
答案 1 :(得分:0)
for循环遍历静止列表。
for (String x : boys) {
l1.add(x);
}
或者
Collections.addAll(l1, boys);
将l2设置为null将无法正常循环。 addAll可以在循环外完成。
答案 2 :(得分:0)
List
L1
和L2
都是空的。所以你的for
循环体都没有被执行。
答案 3 :(得分:0)
public class 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();
}
答案 4 :(得分:0)
你没有在任何地方遍历boy[]
和girl[]
数组。您需要像for (String x : boy)
一样迭代以获得一些结果。
答案 5 :(得分:0)
你需要遍历boy []和girl []数组才能在那里打印内容