我有一个自定义类Disks
,它存储 CD 的各种信息,例如它们的标题、长度、艺术家等。这些Disks
对象存储在一个ArrayList
只能Disks
添加元素的对象中。我正在使用一种方法来根据匹配它们的标题来搜索这些对象。它接受用户输入,然后遍历列表的每个元素,并比较用户关键字和 CD 的标题。如果完全匹配,则将其信息返回给用户。
我想通过合并一个 HashMap 来稍微改变这个搜索机制。我希望标记每个Disks
标题,然后为关键字创建一个映射条目。
这是一个示例:单词“Cars”出现在ArrayList
位置 0、5、7 的元素标题中。我希望能够为“汽车”创建一个映射条目,该条目将是一个列表 [0,5,7]。如果另一个元素添加到ArrayList
位置 10,标题为“汽车”,我将如何修改旧的映射条目,使新列表为 [0,5,7,10]?
最后,我希望用户搜索标题关键字“Loud Cars”。我会先在索引中找到“loud”得到[0,7,5]的列表(例如),然后找到“cars”得到[0,5,7,10]的列表。然后,我将找到这些列表相交的位置并返回ArrayList
与这些位置对应的元素。
我当前的 HashMap 声明如下所示:public HashMap<String, ArrayList<Integer>> map = new HashMap<>();
但是,即使 Key 不同,存储在 ArrayList 中的值也是相同的,因为它们只有一个。
我Disks ArrayList
的是:public ArrayList<Disks> items;
有没有办法将此 ArrayList 合并到 HashMap 的值中?