realmjava:对HashMap和LatLng的支持
在我的android应用程序中,我尝试使用Realm存储数据,我的数据结构如下所示。 这是一个realmjava:对HashMap和LatLng的支持,java,android,realm,Java,Android,Realm,在我的android应用程序中,我尝试使用Realm存储数据,我的数据结构如下所示。 这是一个CrimeDatabase对象列表CrimeDatabase有两个属性:Date和HashMap。HashMap的键是存储犯罪坐标的LatLng,而CrimeIncident是存储其他信息的自定义类对象。简而言之,我的数据结构在视觉上是这样的: DATE 08/01/2017 - HashMap<LatLng, CrimeIncident> - LatLng: 39.952
CrimeDatabase
对象列表CrimeDatabase
有两个属性:Date
和HashMap
。HashMap
的键是存储犯罪坐标的LatLng
,而CrimeIncident
是存储其他信息的自定义类对象。简而言之,我的数据结构在视觉上是这样的:
DATE 08/01/2017
- HashMap<LatLng, CrimeIncident>
- LatLng: 39.9526° N, 75.1652° W
- CrimeIncident: Address, Time, CrimeType
- HashMap<LatLng, CrimeIncident>
- LatLng: 39.9530° N, 75.1648° W
- CrimeIncident: Address, Time, CrimeType
DATE 08/02/2017
- HashMap<LatLng, CrimeIncident>
- LatLng: 39.9533° N, 75.1659° W
- CrimeIncident: Address, Time, CrimeType
- HashMap<LatLng, CrimeIncident>
- LatLng: 39.9524° N, 75.1630° W
- CrimeIncident: Address, Time, CrimeType
日期2017年1月8日
-哈希映射
-板条:北纬39.9526度,西经75.1652度
-犯罪嫌疑人:地址、时间、犯罪类型
-哈希映射
-板条:北纬39.9530度,西经75.1648度
-犯罪嫌疑人:地址、时间、犯罪类型
日期2017年2月8日
-哈希映射
-板条:北纬39.9533度,西经75.1659度
-犯罪嫌疑人:地址、时间、犯罪类型
-哈希映射
-板条:39.9524°N,75.1630°W
-犯罪嫌疑人:地址、时间、犯罪类型
下面是我的代码。我遵循的方法是将CrimeDatabase对象从
公共类CrimeralObject扩展RealmObject{
公共领域犯罪地图;
}
公共类CrimeDatabase扩展RealmObject{
私人日期;
私有HashMap-myHashMap;
}
Realm甚至不允许我将HashMap
放入CrimeDatabase
对象中。我甚至尝试创建一个带有键/值属性的RealmHashMap
类,但它抛出了一个错误,表示不支持LatLng
你有什么想法可以让它工作吗?谢谢 您可以轻松地将该结构映射到单个RealmObject中,并将它们保存到RealmObject中,从而使您的生活更加轻松
CrimeIncident extends RealmObject {
Date date;
double lat;
double lng;
String address;
Date time;
String crimeType;
然后,如果您需要给定日期的对象,只需将给定日期作为Realm不支持的条件执行RealmQuery。我知道这一点,我也尝试过这个答案。请阅读我问题的下半部分。如果不支持LatLng,那么创建一个具有双属性(纬度和经度)的对象如何?您可以稍后创建一个方法,以便稍后从双属性创建LatLng对象。@ParthBhoiwala将
@Ignore
放在myHashMap
上,让realm忽略它。谢谢你的回答。那么,我是否必须将所有的crimeindent
对象放入一个大的RealmList
中,并查询整个数据库以获取特定日期的犯罪事件?或者我可以把它们放在域中的某种HashMap中,以便更快地访问数据?什么?不涉及RealmList,只涉及此对象。当你查询它们时,你会得到它们作为真实的结果
CrimeIncident extends RealmObject {
Date date;
double lat;
double lng;
String address;
Date time;
String crimeType;