在我的Android应用程序中,我正在尝试使用Realm存储我的数据,我的数据结构如下所示。
它是CrimeDatabase
个对象的列表。 CrimeDatabase
有两个属性:Date
和HashMap<LatLng, CrimeIncident>
。 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
以下是我的代码。我遵循从this answer
包装RealmList中的CrimeDatabase对象的方法public class CrimeRealmObject extends RealmObject {
public RealmList<CrimeDatabase> crimeMap;
}
public class CrimeDatabase extends RealmObject {
private Date date;
private HashMap<LatLng, CrimeIncident> myHashMap;
}
Realm甚至不允许我将HashMap
放在CrimeDatabase
对象中。我甚至尝试使用键/值属性创建RealmHashMap
类,但它引发了错误,指出LatLng
不受支持。
有关如何使这项工作的任何想法?谢谢!
答案 0 :(得分:1)
您可以轻松地将该结构映射到单个RealmObject中,将它们保存到Realm中,让您的生活更轻松。
CrimeIncident extends RealmObject {
Date date;
double lat;
double lng;
String address;
Date time;
String crimeType;
然后,如果您需要给定日期的对象,只需将具有该给定日期的RealmQuery作为条件