你好,

我目前正在研究Java中的单词预测.

为此,我使用的是基于NGram的模型,但我有一些内存问题……

在第一次,我有一个这样的模型:

public class NGram implements Serializable {

private static final long serialVersionUID = 1L;

private transient int count;

private int id;

private NGram next;

public NGram(int idP) {

this.id = idP;

}

}

但这需要大量的记忆,所以我认为我需要优化,我想,如果我有“向世界问好”和“向人民问好”,而不是得到两个ngram,我可以保留一个“你好” “然后有两个可能性:”人“和”世界“.

更清楚的是,这是我的新模型:

public class BNGram implements Serializable {

private static final long serialVersionUID = 1L;

private int id;

private HashMap next;

private int count = 1;

public BNGram(int idP) {

this.id = idP;

this.next = new HashMap();

}

}

但似乎我的第二个模型消耗了两倍的内存…我认为这是因为HashMap,但我不知道如何减少这个?我尝试使用不同的Map实现,比如Trove或其他,但它不会改变任何东西.

为了给你一个想法,对于一个9MB的文本,带有57818个不同的单词(不同,但它不是单词的总数),在NGram生成之后,我的javaw进程消耗1.2GB的内存……

如果我用GZIPOutputStream保存它,它在磁盘上需要大约18MB.

所以我的问题是:如何使用更少的内存?我可以用压缩制作东西(作为序列化).

我需要将其添加到其他应用程序,所以我需要减少内存使用量之前……

非常感谢,抱歉我的英语不好……

ZiMath

java hashmap object_Java中的大量Object(使用HashMap)相关推荐

  1. java的object_Java中的Object类详细介绍

    理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. 该类中主要有以下方法: t ...

  2. java public object_Java中Object类

    1. Java中Object类 package java.lang; public class Object { // 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用 priv ...

  3. java循环object_java怎么循环获取object的属性名和值?object内容如下

    展开全部 用反射.public static void main(String[] args) throws IllegalArgumentException, IllegalAccessExcept ...

  4. Java中常见数据结构Map之HashMap

    之前很早就在博客中写过HashMap的一些东西: 彻底搞懂HashMap,HashTableConcurrentHashMap关联: http://www.cnblogs.com/wang-meng/ ...

  5. Java泛型中? 和 ? extends Object的异同分析

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 刘一手 来源 | 公众号「锅外的大佬」 Jav ...

  6. java hashmap getitem_java中HashMap使用

    HashMap:HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的).此实现提供所有可选的映射 ...

  7. [Java]JDK1.7中HashMap的并发死链

    [Java]JDK1.7中HashMap的并发死链 HashMap的并发死链现象发生在扩容时,在扩容过程中**transfer()**方法负责把旧的键值对转移到新的表中,其代码如下: void tra ...

  8. 【java】为什么HashMap桶中节点个数超过8才转为红黑树?

    纪念一波,九师兄博客热门订阅专栏时常名列前茅,我飘了,哈哈哈哈,得意的笑 1.概述 问题: 为什么HashMap桶中节点个数超过8才转为红黑树? 8这个阈值定义在HashMap中,针对这个成员变量,在 ...

  9. 蔚来一面:用Object做hashMap的Key时需要做什么?

    作者 | petterp 来源 | https://blog.csdn.net/petterp/article/details/89043847 先来说一下hashcode()和equals方法吧. ...

最新文章

  1. 服务器架设笔记——打通MySQL和Apache
  2. Java笔记整理-02.Java基础语法
  3. reddit android app,reddit安卓版app
  4. 是否患有新冠肺炎? 你咳嗽一声
  5. java封装Mongodb3.2.1工具类
  6. oracle绑定变量赋值,Oracle教程之绑定变量
  7. Codeforces Round #160 (Div. 2) B - Roma and Changing Signs
  8. 【原创】开源Math.NET基础数学类库使用(14)C#生成安全的随机数
  9. 最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南
  10. 第5次基金申请终于中了!这个血泪教训一定要避免
  11. ie浏览器速度提升设置 关闭网页多媒体方法
  12. 小程序入门学习18--springboot环境配置02
  13. delphi连接access数据库的步骤(详细教程)
  14. 虚拟机搭建服务器实验报告,架设服务器实验报告.pdf
  15. linux minicom centos,Centos6.5 minicom安装与配置
  16. LintCode 627.最长回文串
  17. Parse error in application web.xml file at jndi:/localhost/ipws/WEB-INF/web.xml
  18. 范式的概念和应用(1.2.3.bc.4.5)
  19. python深度学习代码列子
  20. Java基础知识 廖雪峰教程笔记

热门文章

  1. 21、 TRUNCATE:清空表记录
  2. Python异步爬取知乎热榜
  3. sort函数的应用习题(二)
  4. Spring boot其他框架日志
  5. hive hql文档_30分钟入门 Hive SQL(HQL 入门篇)
  6. 你知道 Redis 可以实现延迟队列吗?
  7. 随机算法python_在python中实现随机选择
  8. swift 项目_如何对iOS项目进行静态分析
  9. 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II
  10. Gentoo 安装日记 03 (配置网络)