gpt4 book ai didi

java - 如何按 Java 映射的键的一部分进行分组?

转载 作者:行者123 更新时间:2023-11-30 01:59:58 24 4
gpt4 key购买 nike

如何按 Java 映射的键的一部分进行分组?

例如:我的键是 12A、12B、12C、13A、13B、13D,我想从前缀数字开始分组,然后以 HashMap 中的字符为 12(A,B,C) 13(A, B,D),然后再次将新对象添加到 HashMap 中。

我的对象类型:Map <String, BookingClass>

对象键,例如:“12A”

242G=BookingClass [classCode=G, seatsAvailable=,
242E=BookingClass [classCode=E, seatsAvailable=,
121D=BookingClass [classCode=D, seatsAvailable=,
121C=BookingClass [classCode=C, seatsAvailable=,
242B=BookingClass [classCode=B, seatsAvailable=,
242A=BookingClass [classCode=A, seatsAvailable=,
242O=BookingClass

最佳答案

你有两种可能性。

首先,您可以将数据存储为 map 的 map 。例如:

Map<String, Map<String,BookingClass>>

其次,您可以使用TreeMap。这种类型的映射是排序的,您可以在给定范围内找到键。因此,假设 key 的第二部分是大写字母,并且“A”是最小值,“Z”是最大值,那么您可以找到从 12A 到 12Z 或之间的任何值的范围。

方法floorKeyceilingKey可以找到第一个和最后一个键。

方法:

public NavigableMap<K,V> subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)

可以返回两个键之间的子图,然后您可以在其上导航。

请参阅 API 文档了解更多详细信息:

https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html

关于java - 如何按 Java 映射的键的一部分进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53222343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com