在我的 Android 应用程序中,我尝试使用 Realm 存储我的数据,我的数据结构如下所示。
这是 CrimeDatabase
的列表对象。 CrimeDatabase
有两个属性:Date
和HashMap<LatLng, CrimeIncident>
。 HashMap
的 key 是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
下面是我的代码。我遵循将 CrimeDatabase 对象包装在 RealmList 中的方法 this answer
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
不支持。
关于如何实现这项工作有什么想法吗?谢谢!
最佳答案
您可以轻松地将每个结构映射到单个 RealmObject 中,将它们保存到 Realm 中,让您的生活变得更加轻松。
CrimeIncident extends RealmObject {
Date date;
double lat;
double lng;
String address;
Date time;
String crimeType;
然后,如果您需要给定日期的对象,只需以给定日期作为条件执行 RealmQuery
关于java - Java Realm : Support for HashMap and LatLng,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45829672/