在ArrayList中打印元素

时间:2014-11-01 19:09:58

标签: java arraylist

此代码应该打印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行得到一个错误,无论我是否有数组中的元素。为什么我会收到此错误,如何解决此问题?

3 个答案:

答案 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);         
}

}
相关问题