Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
realmjava:对HashMap和LatLng的支持_Java_Android_Realm - Fatal编程技术网

realmjava:对HashMap和LatLng的支持

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

在我的android应用程序中,我尝试使用Realm存储数据,我的数据结构如下所示。 这是一个
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;