java在任意事物的列表(数组)中创建关联的最佳方法是什么?
我正在制作一个单词定义测验应用程序,我的单词列表和它们的定义是JSON格式的,结构如下:
"words": [
{
"word": "rescind",
"type": "verb",
"definition": "to take back, repeal as in a rule or policy"
},
{
"word": "curtail",
"type": "verb",
"definition": "to reduce or lessen"
},
等等等等
在测验中,你会得到一个随机挑选的单词和五个可供选择的定义。就像标准化的多项选择题
现在,我开始发现一个问题,我有一些意思非常相似的词。目前,我从列表中随机选择了4个错误的定义,但为了避免混淆,我希望避免选择与正确选择类似的定义
我应该如何创建这个“相似性”地图?我想到的一个解决方案是:
{
"word": "avid",
"type": "adjective",
"definition": "extremely excited about, enthusiastic about",
"similar to": [
"ardent",
"fervent"
]
},
但我意识到这个解决方案有点糟糕,因为我必须找到每个单词并实现同一个列表,当我最后添加很多单词时,它会变得很难编辑
你们认为什么是最好的解决方案
# 1 楼答案
第一种简单的方法是创建一个带有字段的
Word
类确保使用“word”字段覆盖^{} 和^{} (我调用dit“value”以将其与类名区分开来)(见下文):
基于值字段实现
equals()
和hashCode()
意味着您可以通过使用以下集合来防止重复:您可以使用来自^{} 的返回值(如果集合中尚未包含指定的元素,则返回值为true)来检查所添加的单词实际上是唯一的:
如果你想添加特殊的酱汁,请将
type
作为枚举:你可以考虑允许单词属于多种类型: