如何从Java中的不同类访问一个arraylist?

时间:2011-05-01 01:59:08

标签: java

import java.util.ArrayList; 
import java.util.Collections;

public class Cards
{
    public static enum cards
    {
        D_A, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9, D_10, D_J, D_Q, D_K,
        H_A, H_2, H_3, H_4, H_5, H_6, H_7, H_8, H_9, H_10, H_J, H_Q, H_K,
        C_A, C_2, C_3, C_4, C_5, C_6, C_7, C_8, C_9, C_10, C_J, C_Q, C_K,
        S_A, S_2, S_3, S_4, S_5, S_6, S_7, S_8, S_9, S_10, S_J, S_Q, S_K,
    }

    public Cards()
    {
        ArrayList<cards> deck; 
        deck = new ArrayList<cards>(51);
        for (cards card : cards.values())
        {
            deck.add(card);
        }
        Collections.shuffle(deck);
        String img = deck.get(2).toString()+".gif";     
        System.out.println(img);
    }

    public static void main(String[] args)
    {
        Cards CardDeck = new Cards();
    }
}

我想访问另一个类中的arraylist。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

使用Cards.cards.D_A或您想要的任何人。如果它们不在同一个包中,请不要忘记导入该类...

答案 1 :(得分:3)

因为它是静态的,所以Cards.cards应该可以工作。

答案 2 :(得分:1)

要访问ArrayList,您需要将列表作为类的成员。 然后,您需要建立一个访问器方法,或者将该成员变量公开(不推荐)。

此处提供了第一个解决方案:

public class Cards
{
    private ArrayList<cards> deck; 

    public static enum cards
    {
        D_A, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9, D_10, D_J, D_Q, D_K,
        H_A, H_2, H_3, H_4, H_5, H_6, H_7, H_8, H_9, H_10, H_J, H_Q, H_K,
        C_A, C_2, C_3, C_4, C_5, C_6, C_7, C_8, C_9, C_10, C_J, C_Q, C_K,
        S_A, S_2, S_3, S_4, S_5, S_6, S_7, S_8, S_9, S_10, S_J, S_Q, S_K,
    }

    public Cards()
    {
        deck = new ArrayList<cards>(51);
        for (cards card : cards.values())
        {
            deck.add(card);
        }
        Collections.shuffle(deck);
        String img = deck.get(2).toString()+".gif";     
        System.out.println(img);
    }
    public ArrayList <cards> getDeck() {
        return deck;
    }
    public static void main(String[] args)
    {
        Cards CardDeck = new Cards();
    }
}