我想实现Trie的高速内存实现,以创建自动建议/拼写检查器的后端.

是否有一些基于内存实现的良好实现,如hazlecast.

另外哪种java开源工具最适合这些用法

解决方法:

我会使用像TreeSet这样的普通NavigableSet.它内置并支持范围搜索.

NavigableSet words = new TreeSet();

// add words.

String startsWith = ...

SortedSet matching = words.subSet(startsWith, startsWith + '\uFFFF');

如果您想要更高效的内存,可以使用数组.

List words = new ArrayList();

words.add("aa");

words.add("ab");

words.add("ac");

words.add("ba");

Collections.sort(words);

String startsWith = "a";

int first = Collections.binarySearch(words, startsWith);

int last = Collections.binarySearch(words, startsWith.concat("\uFFFF"));

if (first < 0) first = ~first;

if (last < 0) last = ~last - 1;

for (int i = first; i <= last; i++) {

System.out.println(words.get(i));

}

标签:java,memory

来源: https://codeday.me/bug/20190704/1377688.html

trie树 java 开源_用于实现Trie的内存java应用程序中的最佳开源相关推荐

  1. (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联

    在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...

  2. erp系统开源_用于制造的开源ERP系统

    erp系统开源 当今的制造挑战要求集成系统. 随着世界时事的发展,制造业正看到需求快速变化,满足需求的能力下降以及供应瓶颈,这些已经变得难以预测和管理. 最重要的是全球经济下滑,这影响了当今和可预见的 ...

  3. java安装_如何在 Mac 上安装 Java | Linux 中国

    macOS 用户可以运行 Java 的开源版本,以及用于云原生开发的新框架. 来源:https://linux.cn/article-12393-1.html 作者:Daniel Oh 译者:MCGA ...

  4. 第三方工具监控java进程_前9个免费的Java进程监视工具以及如何选择一种

    第三方工具监控java进程 这样就可以运行Java代码了. 也许它甚至可以在生产服务器上运行. 当您做好工作后,我们得到了好消息和令人讨厌的消息. 令人讨厌的消息是,现在开始调试. 就是进行调试和应用 ...

  5. 小白学习python好还是java好_小白应该学Python还是Java?

    Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻 ...

  6. 红黑树+java+删除_红黑树深入剖析及Java实现

    红黑树是平衡二叉查找树的一种.为了深入理解红黑树,我们需要从二叉查找树开始讲起. BST 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小, ...

  7. 精通java图片_面试必备:详解Java I/O流,掌握这些就可以说精通了?

    Java IO概述 IO就是输入/输出.Java IO类库基于抽象基础类InputStream和OutputStream构建了一套I/O体系,主要解决从数据源读入数据和将数据写入到目的地问题.我们把数 ...

  8. 安卓java模拟器_用大白话告诉你:Java 后端到底是在做什么?

    作者:黄小斜 阅读本文大概需要 6 分钟. 新手程序员通常会走入一个误区,就是认为学习了一门语言,就可以称为是某某语言工程师了.但事实上真的是这样吗?其实并非如此. 今天我们就来聊一聊,Java 开发 ...

  9. 银河麒麟配置java环境_中标麒麟系统上安装Java、Eclipse指南.doc

    中标麒麟系统上安装Java环境指南 Java_NeoKylin_Install_Guide 2015-01-12 修订记录 序号 版本号 日期 修订人 摘要 1 1.0 目录Content 概述 -- ...

  10. java框架_这篇让你吃透Java集合框架!

    作者:平凡希 cnblogs.com/xiaoxi/p/6089984.html 一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的 ...

最新文章

  1. java 数组越界异常_数组越界异常 求解决!!!
  2. Kipmi0 占用100% CPU1核
  3. ASP.NET程序中常用代码汇总(一)
  4. Win64 驱动内核编程-20.UnHook SSDT
  5. c#图片base64去转义字符_C# 将图片转成Base64字符串,再将字符串转成图片,然后将图片存储到服务器文件夹中,求代码。感激不尽...
  6. ActiveMQ实现负载均衡+高可用部署方案
  7. 二分查找法、顺序查找法
  8. Parcel是个好玩意儿
  9. SQL注入 ——sql数据库操作基础(一)
  10. IIS 6.0 SSL证书安装
  11. 系统学习深度学习(五) --递归神经网络原理,实现及应用
  12. android UncaughtExceptionHandler全局异常处理
  13. 《通信原理》复习笔记4----第四章信道相关例题
  14. 关于 appium 启动 app 后闪退的问题 - (已解决)
  15. 企业权限管理系统如何配置?深度解析永洪BI权限管理系统
  16. C/C++/JAVA环境的搭建
  17. [电路笔记]三相电路
  18. android手机 存储路径设置在哪里找,Android 存储路径选择方法
  19. Windows 修改桌面Desktop的默认路径为D盘
  20. 损失次数模型-负二项分布

热门文章

  1. (回溯法)和为n的所有不增正整数和式分解算法
  2. Linq to sql(六):探究特性(四)
  3. 微信支付服务器繁忙,嘀嘀打车微信支付遭遇系统繁忙 订单过多挤爆服务器
  4. java opencv去除干扰线_电子产品硬件研发—提高抗干扰性能的常用方法
  5. 拓端tecdat|R语言使用二元回归将序数数据建模为多元GLM
  6. 拓端tecdat|R语言对NASA元数据进行文本挖掘的主题建模分析
  7. PIL与opencv相互转换
  8. (3)图像处理-图像属性shape,size,dtype
  9. 用文本方式将数据装入一个数据库表 mysql_文本应该放哪_MySQL用文本方式将数据装入数据库表中...
  10. F1-Score相关概念