如何在 Java 对象列表中搜索

2023-12-12

我有一个对象列表,并且该列表非常大。对象是

class Sample {
    String value1;
    String value2;
    String value3;
    String value4;
    String value5;
 }

现在我必须在列表中搜索对象的特定值。说如果value3=='three'我必须返回这些对象(我的搜索并不总是基于 value3)

名单是

List<Sample> list = new ArrayList<Sample>();

有效的方法是什么?

Thanks.


你可以尝试一下Apache 共享集合.

有一个班级集合实用程序允许您按自定义选择或过滤项目谓词.

你的代码将是这样的:

Predicate condition = new Predicate() {
   boolean evaluate(Object sample) {
        return ((Sample)sample).value3.equals("three");
   }
};
List result = CollectionUtils.select( list, condition );

Update:

In java8,使用 Lambda 和流媒体接口这应该是:

List<Sample> result = list.stream()
     .filter(item -> item.value3.equals("three"))
     .collect(Collectors.toList());

好多了!

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

如何在 Java 对象列表中搜索 的相关文章

  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 在 C# 中将树排序为列表

    我有一个 C 实体列表 我的实体定义如下 public class Item the id of an item public Guid ID get set if this is a child item the ParentID is
  • 如何在 phpmyadmin 中多次运行查询?

    我想要一种能够对查询进行 1 000 000 次基准测试的方法 做到这一点最简单的方法是什么 目前 我已经多次搜索发出查询的方法 但没有弹出任何内容 我还遇到过可以在 mysql 命令行中运行的 benchmark 命令 但它似乎有一些限制
  • CodeIgniter + jQuery UI 自动完成 = 由于 CSRF 设置为 TRUE,导致 500 内部服务器错误(带代码)

    这是查看代码
  • 由于线程未挂起,评估失败

    用户 我的 Microsoft VS Code 有问题 当我用方法运行我的代码时 System in read 我遇到问题 评估失败 因为线程未挂起 附 当我使用 javac 和 java 运行文件时 这段代码可以工作 我也有 VS Cod
  • C# 中使用和 .Dispose() 调用之间的区别[重复]

    这个问题在这里已经有答案了 我最近一直在使用Using 但我想知道它与显式调用 Dispose 有什么不同 例如 以下之间有什么区别 using DisposableTest obj new DisposableTest Some code
  • 获取数组中特定值之前和之后的键(在 PHP 中)

    我想获得价值before and afterPHP 中数组的特定值 例如我有 array 441 212 314 406 And my specific value is 441 在这个例子中我应该得到之前的 406 之后 212 如果我的
  • 添加平台 cordova 后没有平台

    自上周以来 我一直在尝试让科尔多瓦工作 但还没有成功 从这个文档一步一步 http cordova apache org docs en 3 2 0 guide cli index md html 在 cordova 平台添加 androi
  • libpqxx v12 - 将向量值动态绑定到准备好的语句(替代调用)

    我想使用准备好的语句一次将数千行插入到我的 postgres 数据库中 要插入的数据存储在结构向量中 通过阅读以下问题的答案如何在 Postgresql for C 中准备语句和绑定参数我想我找到了方法 不幸的是 我使用的当前版本的 lib
  • Mysql 用 SELECT CASE 的结果存储变量

    我正在学习如何使用 SELECT CASE 但我不太明白 这里是代码 SET vgls 1 SET lgls 1 SET st SELECT CASE WHEN vgls lgls THEN emp WHEN vgls gt lgls TH
  • 为什么 hashcode() 返回一个整数而不是 long? [复制]

    这个问题在这里已经有答案了 在java中 hashcode 方法返回整数而不是长整型 有什么具体原因吗 嗯 一个很好的理由是hashCode基于数据结构 HashSet HashMap 使用数组来存储 bin 数组仅限于int指数 你将一无
  • 当活动重新启动时,活动的片段如何恢复?

    我正在测试系统由于 RAM 不足而终止应用程序进程后用户进入我的应用程序的情况 我看到意想不到的行为并希望得到一些帮助 在我的应用程序中 我有一个活动 我们称之为ActivityA 立即创建一个片段 Fragment A 并进行片段替换 F
  • android WebView停止Flash插件onPause

    我有一个 WebView 其中包含一个 html 文件 其中包含一个 Flash 插件 一个视频 当用户按下 Flash 插件上的播放按钮时 视频可以正常播放 然而 当用户关闭应用程序或移动到新的 Activity 时 Flash 仍在后台
  • 调度周期性任务和时钟漂移

    我想安排一个每隔 X 小时执行一次的定期任务 我有一个用 Java 编写的服务 我正在考虑创建一个长时间运行的后台线程 只要服务启动 它就永远运行 我如何确保我们每 X 小时执行一次任务 我的主机上的时钟漂移是我应该担心的问题吗 我知道如果
  • 在同一端口上运行多个 Tomcat 实例

    我需要在同一端口上的不同目录名下运行多个 tomcat6 实例 我将为两个不同的项目安装两次tomcat6 但是如何将两个实例配置为在同一端口上运行 您可以使用 apache Web 服务器来实现这一点 该服务器使用 mod jk 或 mo
  • xsl:fo 检索标记不是有效的子项

    我需要进行 xsl fo 转换
  • 如何将每个句子的第一个字母大写?

    我知道如何将每个单词的第一个字母大写 但我想知道如何在 C 中将每个句子的第一个字母大写 这不一定是一个小问题 句子可以以许多不同的标点符号结尾 而这些相同的标点符号并不总是表示句子的结尾 像 Dr 这样的缩写可能会带来特殊问题 因为可能有
  • C++ 模板 std::tuple 到 void* 并返回

    我正在尝试使用 C 11 和可变参数模板创建资源管理器 问题是如何将 std tuple 存储到集合中并将其取回 在此示例中 我尝试将其存储到 void 此处尝试不使用 boost any 每次我转换回 std tuple 时 我都会发现转
  • 使用列计数时避免将元素拆分为两列

    我正在尝试使用多列创建一组 但它将一个 Link4 分成两列 只需将鼠标悬停在 Link4 上即可 它的一些部分被分成第二列 有没有什么可能的方法来避免这种情况 div Nav height 100 important div Nav a
  • PROLOG 中的递归?

    鉴于以下 Prolog 事实 f a b f b c f c d f d e f e 我需要创建一个查询xyz a Y 这样我得到Y e d c b 因为 a 依赖于 b b 又依赖于 c 等等 我当前的查询是 xyz X Y f X P
  • 如何在 Java 对象列表中搜索

    我有一个对象列表 并且该列表非常大 对象是 class Sample String value1 String value2 String value3 String value4 String value5 现在我必须在列表中搜索对象的特