如何从公共方法/函数返回ArrayList

时间:2014-02-23 15:45:28

标签: java arraylist

public static getDeck(ArrayList<Integer> cards) {
    for (int total = 1; total !=5; total++) {
        for (int suit = 1; suit != 14; suit++) {
            cards.add(suit);
        }
    }
    Collections.shuffle(cards); // Randomize the list
    return cards;
}

public static void main(String[] args) {
    // Create the cards here.
    ArrayList<Integer> cards = new ArrayList<>();
    cards = getDeck(cards);
}

我希望能够调用函数getDeck,它将向我传递给它的Arraylist添加52个数字。在这种情况下卡。然后返回此对象并将其设置为卡片。

我得到的错误就是这样。

enter image description here

4 个答案:

答案 0 :(得分:5)

getDeck没有返回类型,您需要将其指定为ArrayList<Integer>或其中的任何超类型

public static ArrayList<Integer> getDeck(ArrayList<Integer> cards) {
    for (int total = 1; total !=5; total++) {
        for (int suit = 1; suit != 14; suit++) {
            cards.add(suit);
        }
    }
    Collections.shuffle(cards); // Randomize the list
    return cards;
}

答案 1 :(得分:1)

您需要指定方法的返回类型,如下所示:

public static ArrayList<Integer> getDeck(ArrayList<Integer> cards) {
    //your code
}

答案 2 :(得分:1)

您忘记包含退货类型。方法签名应该写成:

public static List<Integer> getDeck(List<Integer> cards)

我建议使用接口类型,在本例中为List<Integer>类型而不是实现者类型ArrayList<Integer>,这样就可以返回List的所有类型的实现者(例如LinkedList,ArrayList等等) )。这是一个名为program to interfaces的概念。

答案 3 :(得分:0)

接口编程:

public static List<Integer> getDeck(List<Integer> cards) {
    for (int total = 1; total !=5; total++) {
        for (int suit = 1; suit != 14; suit++) {
            cards.add(suit);
        }
    }
    Collections.shuffle(cards); // Randomize the list
    return cards;
}

public static void main(String[] args) {
    // Create the cards here.
    List<Integer> cards = new ArrayList<>();
    cards = getDeck(cards);
}