动态搜索 TreeSet 中的记录

2023-12-02

我正在使用 swing 和 awt 库用 Java 编写通讯录应用程序。该应用程序由一个 JList 组成,该 JList 使用 TreeSet 作为抽象列表模型。

TreeSet 用于名为 Contact 的类,该类具有私有比较器类,可根据联系人的名字对联系人进行排序。这private boolean equals(Object o)如果联系人具有与 O 相同的 mobileNumber(当然是在转换之后),则方法返回 true。

我想在此应用程序中添加搜索功能。我已经进行了搜索 JTextField 并添加了一个 keyListener,我想要做的是按下每个键后,列表会显示一组包含搜索词的缩小结果。 TreeSet 或任何其他集合中有此方法吗?我希望它类似于 iPod 中的音乐应用程序,例如,当您键入字母“f”时,它会列出所有包含字母 F 的歌曲,但只有当您键入“50 cent”时才会列出您想要的歌手的歌曲就会出现。

感谢您的帮助。


如果您想查找以文本开头的所有条目(例如“f”),您可以使用subSet(from, to)方法,像这样:

SortedSet<String> s = new TreeSet<String>(new Comparator<String>() {
  public int compare( String s1, String s2 ) {
    return s1.compareToIgnoreCase( s2 );
  }

});


s.add( "Erich" );
s.add( "Erica" );
s.add( "Erin" );
s.add( "Dave" );
s.add( "Thomas" );

SortedSet<String> result = s.subSet( "e", "e" + Character.MAX_VALUE ); //"e" represents the user input
System.out.println(result);//prints [Erica, Erich, Erin]

result = s.subSet( "Eric", "Eric" + Character.MAX_VALUE );
System.out.println(result); //prints [Erica, Erich]

result = s.subSet( "Erich", "Erich" + Character.MAX_VALUE );
System.out.println(result); //prints [Erich]

自从to参数为subset(from, to)是独一无二的,你需要的东西显然会更大。在我的示例中,我只是添加了Character.MAX_VALUE但您可能想要获得更好的上限。请注意,这取决于您的比较器,例如它如何处理大小写差异等。

如果您想使用通配符进行过滤,例如所有包含文本的文本(例如f会翻译成*f*),无论如何你都必须迭代并检查所有条目。在这种情况下,使用排序集不会获得任何优势。

编辑:将示例更新为您的数据(也添加我:))。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态搜索 TreeSet 中的记录 的相关文章

  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • 在 Java 中使用 char 作为无符号 16 位值?

    我需要 Java 中的无符号 8 位整数 而 char 似乎是唯一接近的东西 虽然它的大小是两倍 但它是无符号的 这使得它对于我想要使用它的用途 编写需要无符号字节的基本模拟器 来说很实用 问题是我听其他程序员说不应该以这种方式使用 cha
  • 如何在 Android 中使用 firebase admin sdk 使用电子邮件和密码登录

    我想创建一个基于 firebase 的 Android 应用程序 我希望我的应用程序能够对用户进行身份验证并检查他们的角色是什么 所以我使用来自 FirebaseAuth getInstance 对象的方法signInWithEmailAn
  • 使用什么框架来引导我的第一个生产 scala 项目?

    我正在第一次涉足 scala 的生产应用程序 该应用程序当前打包为 war 文件 我的计划是创建 scala 编译工件的 jar 文件 并将其添加到 war 文件的 lib 文件夹中 我的增强功能是通过 Jersey 公开的 mysql 支
  • ejb 查找因 NamingException 失败

    我在 web xml 中添加了以下内容
  • Java - 使用 PDFBox 将多个图像合并为一个 PDF

    我能够使用下面的代码将多个 PDF 文件合并为一个 PDF public void mergePDF File file1 new File inputPDF 001 pdf File file2 new File inputPDF 002

随机推荐

  • 如何制作一组列表

    我有一个这样的列表 i 1 2 3 2 4 5 1 2 3 2 4 5 我想获得一个包含 唯一 列表 基于其元素 的列表 例如 o 1 2 3 2 4 5 我无法使用set 因为列表中有不可散列的元素 相反 我正在这样做 o for e i
  • 从 jBPM 流程访问数据库

    如何从 jBPM 流程访问数据库 您认为我可以使用脚本任务或人工任务的进入 退出操作连接到数据库吗 我建议不要使用人工任务的进入 退出操作来存储代码 弄清楚您将代码放在哪里可能是一场噩梦 因为当人工任务有代码时没有视觉线索 您可以尝试脚本任
  • Grails 限制表创建

    我想使用 Grails 功能在有限的基础上创建 更新数据库表 具体来说 我希望 Grails 管理一些表 但不是全部 有没有办法限制 Grails 管理的表 或者这是一个全有或全无的提议 一般来说 要么全有 要么全无 因为 Grails 使
  • 缓慢的 Skscene 过渡

    我有两个场景 家庭和玩耍 与到家庭场景的转换相比 到游戏场景的转换确实很慢 我想这是因为我的游戏场景中有更多的事情发生 有什么方法可以预加载播放场景吗 或者让过渡更加无缝 我对这个论坛的答案感兴趣预加载场景以防止延迟 但我不知道从哪里开始
  • 在控制器中为每个 RequestMapping 不同地配置 FAIL_ON_UNKNOWN_PROPERTIES

    我想在不同的设备上以不同的方式处理 json 到对象的转换 RequestMapping在我的控制器中 我相信 如果我们在 spring boot 项目中添加 Jackson 依赖项 它会处理 json 到对象的转换 spring jack
  • 如何使用 jaro-winkler 查找表中最接近的值?

    我的数据库中有一个 jaro winkler 算法的实现 这个函数不是我写的 该函数比较两个值并给出匹配的概率 所以 jaro string1 string2 matchnoofchars 将返回结果 我不想比较两个字符串 而是想发送一个带
  • Jenkins 插件的 Spring-core 依赖版本错误

    我正在尝试制作一个使用的 Jenkins 插件需要 spring core 3 2 2 的库 cloudfoundry client lib 我只是使用 mvn 命令创建一个框架插件 然后将 Maven 依赖项添加到 pom xml 以及一
  • 将 numpy 开放网格转换为坐标

    我想将 numpy ix 例程返回的开放网格转换为坐标列表 eg for In 1 m np ix 0 2 4 1 3 In 2 m Out 2 array 0 2 4 array 1 3 我想要的是 0 1 0 3 2 1 2 3 4 1
  • 使用 Maven Surefire 运行依赖项 jar 中包含的 JUnit 测试

    我的 Maven 存储库中有一个 jar 其中包含 junit 测试 它应该在不同的项目中运行 因为它能够检查项目并测试其某些功能 不幸的是 surefire 不会拾取罐子中包含的测试 因为这功能请求显示 在功能请求中 他们建议解压 jar
  • ENTITY 声明可以嵌套在引用的 XML 文件中吗?

    我正在处理一个相当大的 DocBook XML 文档 主书有章节 但通过使用实体引用包括所有小节 像这样的事情 main book xml
  • 如何在C#中使用&运算符?代码的翻译是否正确?

    C 中的 if arg2 1 行 arg2 是 DWORD 等于 C 中的 if arg2 1 0 arg2 是 Uint32 对吗 我正在尝试将函数从 C 转换为 C 但出现错误 Operator cannot be applied to
  • 尝试使用 Spring Data JPA 运行存储过程时出现“类型不能为 null”异常

    我正在尝试调用一个存储过程 其签名如下所示 CREATE OR REPLACE PROCEDURE FIND FIRST BOOKMARK GT bookmark IN NUMBER cur OUT SYS REFCURSOR 我正在使用
  • 在左侧显示多行值并破坏堆栈右侧对齐时的 SwiftUI 错误

    当文本输入是多行时 我面临对齐问题 在此示例中 第一部分显示图像中正确显示的左侧和右侧文本 第二部分 它显示 3 到 4 行的文本 这会干扰右侧的对齐 我想让左边在多行中独立调整大小 右侧保持原样 之间没有间隙 2nd title and
  • WScript.Shell 用于运行路径中包含空格且来自 VBA 的参数的脚本

    我需要使用 WScript Shell 从 VBA 调用脚本 R 文件的路径包含空格 此外 还会将一系列参数传递给脚本 其中一些参数还包含空格 我已经尝试了所有可以想到的路径 参数甚至整个字符串的引号和双引号的组合 特别是这里 当需要传递参
  • 对具有相似行值的值求和

    我有一个看起来像这样的 pandas 数据集 city difference NY 6 SF 8 LA 8 NY 9 SF 10 我想总结一下difference专栏基于city列 以便我的最终数据集看起来像 city difference
  • 如何使用现代 C++ 在控制台中打印“对齐”文本

    如何设置文本 对齐 格式 使其在给定宽度下与左侧和右侧对齐 int main printJustified A long text with many words A long text with many words A long tex
  • 是否可以使用JS打开一个HTML select来显示其选项列表? [复制]

    这个问题在这里已经有答案了 是否可以使用 JavaScript 打开 HTML 选择来显示其选项列表 不幸的是 这个问题有一个简单的答案 那就是 不
  • FFmpeg从帧OpenCV python将视频流传输到rtmp

    在工业项目的背景下 我开发了一个实时应用程序来使用人工智能算法检测人员 在本地 我使用使用帧操作的 OPENCV 获取并显示视频 目的是实现从Opencv的帧到rtmp服务器的流视频 FFmpeg 似乎是一个很好的视角 然而 通常流是从 m
  • 无法在 Mac OS X 10.7 Lion 上构建 PIL

    我正在 Mac OS X 10 7 上构建 PIL 1 1 7 但收到此错误 running build running build py running build ext using frameworks at System Libra
  • 动态搜索 TreeSet 中的记录

    我正在使用 swing 和 awt 库用 Java 编写通讯录应用程序 该应用程序由一个 JList 组成 该 JList 使用 TreeSet 作为抽象列表模型 TreeSet 用于名为 Contact 的类 该类具有私有比较器类 可根据