此代码应该打印ArrayList中的所有元素。它应该通过报告来处理空的ArrayList。
这是我的代码:
import java.util.ArrayList;
public class Lab4ex1 {
public static String prtElem(ArrayList<String> arr){
if(arr.size() == 0) {
return "Error: The ArrayList must have elements to print out.";
} else {
for(int i=0;i<arr.size();i++){
return arr.get(i);
}
return "";
}
}
public static void main(String[] args){
prtElem([]);
}
}
然而,当我尝试执行它时,我在第16行得到一个错误,无论我是否有数组中的元素。为什么我会收到此错误,如何解决此问题?
答案 0 :(得分:0)
prtElem
需要ArrayList<String>
作为参数。您正尝试使用prtElem([])
调用它。
[]
不是ArrayList<String>
。
尝试定义ArrayList<String>
并将其传递给您的函数。
随后你会发现(正如Makoto所指出的)这段代码:
for (int i=0;i<arr.size();i++) {
return arr.get(i);
}
只返回arr.get(0)
,因为第一次点击return
时,方法就会完成。
答案 1 :(得分:0)
这将打印传递给方法的任何ArrayList<String>
中的所有元素:
public static void prtElem(ArrayList<String> arr){
if(arr.isEmpty()) {
System.out.println("Error: The ArrayList must have elements to print out.");
} else {
for (String s : arr) {
System.out.println(s);
}
}
}
答案 2 :(得分:0)
试试这个:
import java.util.ArrayList;
import java.util.Arrays;
public class Lab4ex1 {
public static void prtElem(ArrayList<String> arr){
if(arr.isEmpty()){
System.out.println("Error: The ArrayList must have elements to print out.");
}
else{
for (String str : arr) {
System.out.println(str);
}
}
}
public static void main(String[] args){
ArrayList<String> arr;
arr = new ArrayList<>(Arrays.asList("one", "two", "three","four"));
// arr.clear(); test Array when is empty
prtElem(arr);
}
}