Java 如何将单个对象添加到数组中
对于我的项目,我需要将一个生物添加到房间中创建的生物数组中Java 如何将单个对象添加到数组中,java,arrays,object,Java,Arrays,Object,对于我的项目,我需要将一个生物添加到房间中创建的生物数组中 public class Room { String name; String description; String state; Creature [] creatures = new Creature[10]; public Room(String roomName) { name = roomName; } public String toS
public class Room
{
String name;
String description;
String state;
Creature [] creatures = new Creature[10];
public Room(String roomName)
{
name = roomName;
}
public String toString()
{
String retValue = "";
for (int i = 0; i < creatures.length; i++) {
retValue = retValue + creatures[i].toString();
}
return retValue;
}
public void addCreature(String creatureName)
{
for (int i = 0; i < creatures.length; i++)
{
if(creatures[i] == null)
{
creatures[i] = new Creature(creatureName);
}
}
}
}
公共教室
{
字符串名;
字符串描述;
字符串状态;
生物[]生物=新生物[10];
公共房间(字符串roomName)
{
名称=房间名称;
}
公共字符串toString()
{
字符串retValue=“”;
for(int i=0;i
当我这样做时,它会覆盖整个阵列,我可以做些什么来向阵列中添加单个生物?使用
break
语句
if(creatures[i] == null)
{
creatures[i] = new Creature(creatureName);
break;
}
数组只有固定的大小。当您编写
新生物[10]
时,这意味着您的生物数组中最多有10个元素
您可以通过两种不同的方式添加项目:
ArrayList
,这是一个自动为您执行#1操作的类List<Creature> creatures = new ArrayList<>();
public void addCreature(String creatureName) {
creatures.add(new Creature(creatureName));
}
List biotes=new ArrayList();
公共无效添加生物(字符串creatureName){
添加(新生物(creatureName));
}
似乎在if子句中遗漏了一个条件。我想应该是这样
if(current == null || current.getCreatureName() == null) {
creatures[i] = new Creature(creatureName);
}
你的意思是要附加到现有的数组中吗?@ScaryWombat是的,现在数组是空的,所以当我在man中调用这个函数时,它会将一个新生物添加到游戏中的生物数组中object@K091916编辑您的问题以显示您正在尝试的代码和您拥有的stacktrace。我不知道您的stacktrace显示的是什么,但基于您的上述代码,
toString
还应检查并确保生物[I]
不为空。当我使用原始代码时,我的输出得到10个相同的生物。例如,我试图做的是能够添加5个生物,而不是覆盖整个阵列