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

Java多语言单词展示场景下嵌套类调用低效问题如何优化

Java多语言单词查询应用优化方案

你当前的设计混淆了「通用数据结构」和「具体数据」,完全不需要为每个单词单独定义嵌套类,只需定义1次通用的单词结构,所有单词数据用集合统一存储即可,可完全消除重复代码:


第一步:定义通用单词结构

全局只需要定义1次公共的单词实体类,存储不同语言的翻译字段:

// 通用单词实体类
public class WordEntry {
    private String english;
    private String chinese;

    // 全参构造方法,快速创建单词实例
    public WordEntry(String english, String chinese) {
        this.english = english;
        this.chinese = chinese;
    }

    // 属性getter
    public String getEnglish() { return english; }
    public String getChinese() { return chinese; }
}

第二步:统一管理单词数据

用集合存储所有单词,初始化时批量添加即可,不需要为每个单词写单独的实例化代码:

import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;

public class WordManager {
    // Map存储:适配下拉菜单选择查询场景,key对应下拉选项值,可O(1)速度查询
    private Map<String, WordEntry> wordMap = new HashMap<>();
    // List存储:适配下拉菜单加载所有选项的场景
    private List<WordEntry> wordList = new ArrayList<>();

    public WordManager() {
        // 初始化所有单词,新增单词仅需加一行调用即可,无需额外定义类
        addWord("example", "example对应的中文");
        addWord("example2", "example2对应的中文");
        // 剩余18个单词直接在这里加addWord调用即可
    }

    // 统一的单词添加方法,消除重复逻辑
    private void addWord(String english, String chinese) {
        WordEntry entry = new WordEntry(english, chinese);
        wordMap.put(english, entry);
        wordList.add(entry);
    }

    // 下拉菜单选中后调用该方法,传入选中的英文单词即可返回对应中文
    public String getChineseBySelectedKey(String englishKey) {
        WordEntry entry = wordMap.get(englishKey);
        return entry != null ? entry.getChinese() : "无对应翻译";
    }

    // 给下拉菜单提供所有选项列表
    public List<WordEntry> getAllWordOptions() {
        return wordList;
    }
}

第三步:业务场景调用示例

public class AppService {
    public static void main(String[] args) {
        WordManager wordManager = new WordManager();
        // 假设用户在下拉菜单选中了"example"
        String result = wordManager.getChineseBySelectedKey("example");
        System.out.println(result);
    }
}

扩展优化建议

  • 后续新增其他语言(如日语、韩语),仅需在WordEntry中新增对应属性和getter,调整addWord的传参即可,整体架构无需改动
  • 若后续单词量上涨到数百上千,可将单词数据存入配置文件、本地数据库,初始化时批量加载,无需修改Java业务代码
  • 注意遵循Java命名规范:类名使用大驼峰,方法名使用小驼峰,可显著提升代码可读性

内容的提问来源于stack exchange,提问作者R.Ricardo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:06:02