sách gpt4 ai đã đi

Tôi cần loại đối tượng Java nào (bộ sưu tập/danh sách/bộ/khác)?

In lại 作者:行者123 更新时间:2023-12-02 11:02:03 28 4
mua khóa gpt4 Nike

我想存储一个对象集合,这些对象根据它们所代表的值进行键控。这些键Có thể重复。例如:

 [4] => Bob
[5] => Mary
[5] => Sue
[9] => Steve
[10] => Jason
[10] => Michelle

本质上,我想循环遍历这个并查看每个键并说,“是否存在另一个对象(在本例中为人),其键与当前键的距离在 1 以内?如果是,则将它们匹配并将它们从 Collection 。”我将迭代上例中的“1”值,直到集合为空(或者在奇数场景中剩余一个对象)。

我不相信我尝试的方式是最好的方式,所以我也愿意接受反馈。

1 Câu trả lời

你想要一个Multimap . Guava提供该接口(interface)和各种子接口(interface)如ListMultimap , SetMultimapSortedSetMultimap取决于您想要将值存储在哪种集合中。然后它提供各种实现,例如 ArrayListMultimapHashMultimap ,以及 Multimaps 中与它们一起使用的各种实用程序.

在 Java 中执行此操作的传统方法类似于 Map> , Map>等等,但是维护值集合非常繁琐,并且各种本应简单的操作(例如只为键赋值)却比它们需要的复杂得多。

Multimap旨在作为一种数据结构,专门设计用于对映射到单个键的多个值进行建模(与 Bản đồ 不同)。鉴于此,它使操作如您所期望的一样简单:

ListMultimap m = ArrayListMultimap.create();
m.put(4, "Bob");
m.put(5, "Mary");
m.put(5, "Sue");
...

for (String name : m.get(5)) { ... } // iterates ["Mary", "Sue"]

如果您想确保相同的值不会两次映射到单个键并且不关心值的顺序,则可以使用 SetMultimapCòn hơn làListMultimap

我不确定你的意思是“是否存在另一个对象,其键与当前键的距离在 1 以内?如果是,请将它们匹配并将它们从集合中删除。”但如果我没读错的话,你可以这样做:

for (Integer key : m.keySet()) {
Collection people = m.get(key);
Collection peopleOneLower = m.get(key - 1); // empty if there are none
...
}

或者,您可以使用 TreeMultimap 做一些事情它将对其键集和值集进行排序。

关于java - 我需要哪种 Java 对象类型(集合/列表/集合/其他)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348253/

28 4 0
Bài viết được đề xuất: java - 将 2D 平面拉伸(stretch)为 3D 立方体
Bài viết được đề xuất: java - Spring-Security:MySQL JDBC 身份验证失败
Bài viết được đề xuất: java - 为什么不能循环直接实现 Iterator 的类?
Bài viết được đề xuất: asp.net-mvc - Sitecore 和 ASP.net MVC
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com