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

如何跨类访问二维数组并实现颜色到水果的映射功能?

代码实现方案

二维数组实现版本

先修正你代码里的基础问题:Java中字符串必须用双引号包裹(比如"red"、"apple"),方法参数的类型string要改为Java标准的大写String。

实现setFood()方法

这个方法负责初始化二维数组,将颜色与水果的对应关系存入其中:

public void setFood(){
    // 二维数组每行格式为 [颜色, 对应水果]
    food = new String[][]{
        {"red", "apple"},
        {"yellow", "banana"},
        {"orange", "orange"}
        // 可继续添加更多颜色-水果映射关系
    };
}

实现getFruit(String colour)方法

遍历二维数组,匹配目标颜色后返回对应水果;若未匹配到可返回null或自定义默认值:

public String getFruit(String colour){
    // 先判断数组是否初始化,避免空指针异常
    if(food == null){
        setFood(); // 未初始化则先执行初始化
    }
    
    // 遍历二维数组的每一组映射
    for(String[] pair : food){
        // pair[0]存储颜色,pair[1]存储对应水果
        if(pair[0].equals(colour)){
            return pair[1];
        }
    }
    
    // 无匹配颜色时返回null,也可改为返回"未知水果"这类提示文本
    return null;
}

优化建议:使用HashMap(查找效率更高)

如果仅做键值对查找,HashMap的效率优于二维数组(无需遍历所有元素),实现也更简洁:

// 替换原二维数组为HashMap
private Map<String, String> foodMap;

public void setFood(){
    foodMap = new HashMap<>();
    foodMap.put("red", "apple");
    foodMap.put("yellow", "banana");
    foodMap.put("orange", "orange");
}

public String getFruit(String colour){
    if(foodMap == null){
        setFood();
    }
    // 直接通过颜色键获取对应水果,无匹配时返回null
    return foodMap.get(colour);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:10:28