如何在Android中实现字典?寻求替代手动实现Abstract Dictionary类的简便方案
解决Android中Dictionary实现冗余的问题
嘿,我完全懂你现在的烦恼——手动实现Dictionary抽象类的所有方法不仅冗余,还容易因为错误的默认实现导致运行时问题。其实有几个更简便的方案,根本不用自己写那些空方法:
方案1:用HashMap替代Dictionary(推荐)
Dictionary是Java早期的抽象类,现在更推荐使用Map接口的实现类,比如HashMap,它已经完整实现了所有核心方法,直接用就行:
private final Map<String, String> allWords = new HashMap<>();
你可以直接调用put()、get()、size()等方法,完全不需要自己实现任何逻辑,而且HashMap在Android中使用非常广泛,性能也很稳定。
方案2:直接使用Hashtable(Dictionary的子类)
如果你因为某些原因必须使用Dictionary类型,那可以直接实例化它的子类Hashtable,它已经实现了Dictionary的所有抽象方法:
private final Dictionary<String, String> allWords = new Hashtable<>();
这样一行代码就搞定了,不用再写那些冗余的匿名内部类实现。
为什么你之前的代码会报错?
你之前的实现里,方法的返回值逻辑是矛盾的:比如isEmpty()返回false但size()返回0,put()方法直接返回null(意味着没有正确处理元素添加),当你实际调用这些方法时,自然会出现不符合预期的错误。
内容的提问来源于stack exchange,提问作者ZeinZebib
相关产品推荐
相关产品推荐

