我班上开始时有一个arraylist
private ArrayList<Dog> dogs;
这就是在狗类中声明狗的方式
public Dog(String name, ArrayList<Owner> owners, boolean likeBones, String food,
int mealsPerDay);
我正在努力寻找那些喜欢骨头并将狗拯救成结果的狗。其余代码工作正常,包括.getLikesBones()。
Dog[] result = null;
for (Dog dogSearch : dogs) {
if (dogSearch.getLikesBones()){
result =dogSearch; //I know this won't work, just simply showing what I want.
}
}
return result;
}
提前感谢您的帮助。
答案 0 :(得分:1)
您可能不知道result
大小。因此,result
应声明为ArrayList
而不是数组。请看下面的代码。
List<Dog> result = new ArrayList<>();
将搜索值添加到result
。
for (Dog dogSearch : dogs) {
if (dogSearch.getLikesBones()){
result.add(dogSearch);
}
}
答案 1 :(得分:0)
您可以使用集合而不是使用数组
List<Dog> result = new ArrayList<Dog>();
for (Dog dogSearch : dogs) {
if (dogSearch.getLikesBones()){
result.add(dogSearch);
}
}
return result;
}
答案 2 :(得分:0)
如果您将Dog[] result
更改为List<Dog> result = new ArrayList<>()
会更好,这样您就可以添加数据而无需担心以固定大小初始化数组。
您的代码如下所示:
List<Dog> result = new ArrayList<>();
for (Dog dogSearch : dogs) {
if (dogSearch.getLikesBones()){
result.add(dogSearch);
}
}
return result;
如果您仍需要返回Dog[]
而不是List<Dog>
,请在List#toArray
声明中致电return
:
return result.toArray(new Dog[result.size()]);
答案 3 :(得分:0)
你有两种方法可以做到这一点。您已在代码顶部声明regular array of Dogs
。
要使用regular array
执行此操作,您需要声明int
来保存数组的索引,因为常规数组没有“add”函数。所以它会是:
Dog[] result = new Dog[dogs.lenght()];
int index = 0;
for (Dog dogSearch : dogs) {
if (dogSearch.getLikesBones()){
result[index] = dogSearch;
index++;
}
}
return result;
}
否则使用狗的数组列表作为“结果”,然后执行
arrayList.Add(dogSearch);
答案 4 :(得分:0)
ArrayList<Dog> result = new ArrayList<Dog>();
for (Dog dogSearch : dogs) {
if (dogSearch.getLikesBones()){
result.put(dogSearch);
}
}
return result; }