java - Java Realm : Support for HashMap and LatLng

标签 java android realm

在我的 Android 应用程序中,我尝试使用 Realm 存储我的数据,我的数据结构如下所示。 这是 CrimeDatabase 的列表对象。 CrimeDatabase有两个属性:DateHashMap<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/

相关文章:

java - ViewPager 中的 fragment 显示

java - 代码抛出 SEVERE : No value specified for parameter 1 excetion

android - 使用 RealmMigration 在 Realm Android 中将数据类型从 String 更改为 Long

Java双向加密库

java - 如何从移动设备以编程方式解压缩 .apk 文件?以及如何将文件插入其中?

android - 如何避免 `getNotification` 被弃用?

android studio 3.1.1 编辑build.gradle文件慢

android - Realm 数据同步不一致

ios - 如何为Realm对象制作通用的GET方法?

java - Apache Camel 同步多个消费者