Java 如何返回每个类的计数';s计数,而不是每一类';s实例计数
我有:Java 如何返回每个类的计数';s计数,而不是每一类';s实例计数,java,static,Java,Static,我有: 接口-ISpacecraft 抽象类-航天器(实现上述接口) 类-4类船舶(衍生于航天器的子类) 任务:返回每艘船的计数,如果我有2艘货船,则返回2艘 问题:当我遍历ArrayList时,它会打印“2”两次,因为我有2艘货船 预期输出:2,1,1,2 电流输出:2,2,1,1,2,2 问题:我如何迭代船舶类型的数量,而不是它们的所有实例 注意:我无法更改“PrintInstanceNumber PerClass”的签名 代码: StarFleetManagerTester publi
- 接口-ISpacecraft
- 抽象类-航天器(实现上述接口)
- 类-4类船舶(衍生于航天器的子类)
public static void printInstanceNumberPerClass (ArrayList<ISpacecraft> fleet)
{
ArrayList<ISpacecraft> objects = new ArrayList<>(fleet);
ArrayList<Integer> cnt = new ArrayList<Integer>();
for(ISpacecraft obj : objects)
{
cnt.add(obj.getCount());
}
for(ISpacecraft obj : objects)
System.out.println(obj.getCount() +" "+obj.getName());
}
ISpacecraft
protected static int countCruiser;
int getCount();
货物运输、研究等
private static int count
@Override
public int getCount() {
return this.count;
}
您可以像这样定义名为
typeName
的String
成员
protected String typeName;
public String getTypeName() {
return typeName;
}
typeName = "Some Particular Type";
在抽象类中定义成员,如下所示
protected String typeName;
public String getTypeName() {
return typeName;
}
typeName = "Some Particular Type";
现在,对于抽象类
,您需要一个静态
映射
:
public static Map<String, int> typeCounts;
最后,您将需要并使用输出的键和值。您有什么问题要问我们吗?您应该跟踪船舶的类型。在这里,您计算的是每艘船的一种类型的实例。相反,试着记录每艘船舶的船舶类型实例type@JoeC嗯,我认为这很简单,我已经提供了预期的输出。@DevinSnyder。我该怎么做?它还可以解决其他问题,比如每种类型的船都有不同类型的武器。如果你的问题是“我如何修理它?”,那么这就不是问题所在。你需要把范围缩小到一个具体的技术问题。是否要从列表中删除重复项?或者你更愿意找出船的类型并以此为基础计算?或者您是否希望采取另一种方法,需要我们的帮助?只有这样,我们才能真正有所帮助。