如何创建自己的收藏?

时间:2015-02-12 16:15:46

标签: java arrays collections

所以我想说我有一个创建棒球卡的BaseballCard类。 现在我需要创建另一个类,这将是我的集合类。

例如,我将其称为BaseballCardCollection

然后我想创建像

这样的方法

尺寸(返回集合中的卡片数量)

addCard(将棒球对象添加到集合对象)

removeCard(移除棒球卡)

等等

最好的方法是什么?我试过这个

public CardCollectionList() {
    BaseballCard[] baseballCardList = new BaseballCard[101];
 }

所以每个对象都用一个大小为100的BaseballCard类型的数组暗示。

然后例如尺寸方法我试过这样的事情

  public int size(){
    int size = 0;
    for(int i = 1; i<this.baseballCardList.length; i++)
        if (baseballCardList!= null)
            size+=1;

}

但它没有用,因为&#34; baseballCardList无法解析为变量&#34;

5 个答案:

答案 0 :(得分:2)

您可以尝试使用ArrayLists - http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

ArrayList<baseballCard> baseballCardList = new ArrayList<baseballCard>(0);

public boolean addCard(baseballCard card){
    return baseballCardList.add(card);
}

public boolean removeCard(int card){
    return baseballCardList.remove(card);
}

public baseballCard getCard(int card){
    return baseballCardList.get(card);
}

public int sizeBaseballCardList(){
    return baseballCardList.size();
}

public ArrayList<baseballCard> getBaseballCardList(){
    return baseballCardList;
}

答案 1 :(得分:0)

将变量BaseballCard[] baseballCardList移到构造函数之外,使其成为类中的字段。与size类似。

这就是课程的样子:

public class CardCollectionList {
    //fields
    private BaseballCard[] baseballCardList;
    private int size;

    //constructor
    public CardCollectionList() {
         baseballCardList = new BaseballCard[101];
    }
    //method
    public int getSize() {
        return this.size;
    }
}

答案 2 :(得分:0)

您可以尝试创建自己的类,实现Collection接口并定义自己的方法+实现Collection方法:

public class myContainer implements Collection <BaseballCard> {

}

答案 3 :(得分:0)

您需要将变量声明从构造函数移动到类,因此您也可以使用其他方法访问它。

class CardCollectionList {
  BaseballCard[] baseballCardList;

  public CardCollectionList() {
    baseballCardList = new BaseballCard[101];
  }

  public int size(){
    int size = 0;
    for(int i = 1; i<this.baseballCardList.length; i++) {
      if (baseballCardList[i] != null) {
        size+=1;
      }
    }
    return size;
  }
}

代码尽可能接近您的片段。有几种方法可以改善这种情况(在添加时跟踪大小,自动重新分配数组等)。但如果您想亲自尝试,这是一个开始。

通常,您可能只使用ArrayList<BaseballCard>

答案 4 :(得分:0)

  

现在我需要创建另一个类,这将是我的集合类。   ......这是最好的方法。

我没有足够的声誉来评论您的问题,因此我假设您只想将BaseballCard对象存储在Java Collection中。 Java SDK提供了很多选项。既然你问的是“最好”的方式,那么我会使用其中一种,除非你需要添加额外的功能。

如果您没有从Java SDK中找到所需内容,或者只是想创建自己的Collection,那么请遵循@michał-szydłowski上面给出的建议