所以我想说我有一个创建棒球卡的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;
答案 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上面给出的建议