You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java作业:如何用HashMap中匹配的动物对象填充数组

问题解决:将HashMap中棕色动物依次存入数组

你的代码之所以会把数组全填充成最后一只匹配的动物,核心问题是嵌套了数组遍历循环——每找到一只棕色动物,就会把它重复赋值给数组的所有索引位置,最后自然只剩最后一次循环的动物。

修正后的代码如下:

// 假设zooAnimals已经被正确初始化并填充了数据
HashMap<String, Animal> zooAnimals = new HashMap<>();
// 初始化数组,长度设为10
Animal[] animalArray = new Animal[10];
// 用单独的索引变量记录当前要填充的位置
int index = 0;

for(String key : zooAnimals.keySet()) {
    Animal currentAnimal = zooAnimals.get(key);
    // 判断动物颜色为棕色,且数组还没填满
    if("Brown".equals(currentAnimal.getColor()) && index < animalArray.length) {
        animalArray[index] = currentAnimal;
        index++; // 填充后索引自增,准备下一个位置
    }
}

关键改动说明:

  • 移除内层数组遍历循环,改用index变量追踪当前填充位置,初始值为0
  • 每次找到符合条件的动物后,仅赋值给animalArray[index],随后index自增,实现依次填充到下一个索引
  • 新增index < animalArray.length的判断,避免数组越界报错(若棕色动物数量超过10只,超出部分会被忽略)

内容的提问来源于stack exchange,提问作者chalcedony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:03:11