如何过滤动态嵌套列表对象java 8

2024-01-13

如何过滤动态嵌套列表对象java 8

Example:

class Items {
    List<Mobile> mobiles;
}

class Mobile{
    String mName;
    List<Plans> plans;
}

class Plans{
    String planId;
    String planName;
}

因此,我有 3 部手机(手机将是动态 3 或 4 等),每个移动设备上都有多个计划。如何动态过滤每个移动设备的通用计划?

Example(P1-planId) :
Items:
    M1 - P1,P2,P3,P4
    M2 - P4,P5,P6,P1,P8,P2
    M3 - P7,P2,P4,P1,P8,P9,P10
Result:
Items:
    M1 - P1,P2,P4
    M2 - P1,P2,P4
    M3 - P1,P2,P4

里面有一个方法Items要获取所有手机通用的所有计划,可能如下所示:

public List<Plan> getCommonPlans() {
    return mobiles.stream().flatMap(Mobile::streamPlans).distinct()
        .filter(p -> mobiles.stream().allMatch(m -> m.hasPlan(p)))
        .collect(Collectors.toList());
}

这假设Mobile.streamPlans and Mobile.hasPlan方法非常简单。

一种稍微不同的方法,更有效但可能不那么直观,是对计划进行计数并过滤计数等于手机数量的计划:

    return mobiles.stream().flatMap(Mobile::streamPlans)
        .collect(Collectors.groupingBy(m -> m, Collectors.counting())
        .entrySet().stream()
        .filter(e -> e.getValue() == mobiles.size())
        .map(Map.Entry::getKey)
        .collect(Collectors.toList());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何过滤动态嵌套列表对象java 8 的相关文章

  • SpringBoot 2 元素未绑定

    我的 Spring Boot 应用程序有一个文件 application yml 该应用程序不愿意运行 根据日志 元素 simulator geo b12 simulator geo b13 simulator geo b21 simula
  • Spark:用列的平均值替换数据框中的空值

    如何创建 UDF 以编程方式将每列中 Spark 数据框中的空值替换为列平均值 例如 在示例中 数据 col1 空值的值为 2 4 6 8 5 5 5 示例数据 col1 col2 col3 2 null 3 4 3 3 6 5 null
  • LoaderManager 不接受“这个”

    好吧 我投降 我想不明白 我正在学习 Udacity 的 Android 基础知识课程 需要了解如何使用加载器加载数据 但是 当我使用以下行时 this 以红色突出显示并显示以下错误 Wrong 3rd argument type Foun
  • 如何对由 keycloak 保护的 SpringBoot 控制器进行单元测试?

    我知道已经有类似的问题了here https stackoverflow com questions 49144953 mocking a keycloak token for testing a spring controller and
  • 什么 RoundingMode 常量 100% 与 Math.round 一样工作?

    我的意思是有没有舍入模式 https docs oracle com javase 8 docs api java math RoundingMode html常数准确地描述了什么Math round arg 做 据我所知 Math rou
  • 使用translateX()和translateY()时,窗格布局内的JavaFX文本与其他元素重叠

    下图是对正在发生的情况的描述 我有一个Pane其中包含一个Text我正在使用下面的代码来制作marquee like effect of the Text 所以当Pane没有足够的空间来显示文本 动画正在开始 文本必须来回移动 以便用户可以
  • Java 更改包名称大小写约定的原因

    就在你说这是重复的之前 我已经看到了其他问题 但我仍然想发布这个 所以我在读用 Java 思考 Bruce Eckel这段话是关于小写命名约定的 Java 1 0 和 Java 1 1 中的域扩展com edu org net等 按照惯例都
  • Java中如何存储profile?

    我仍在学习 Java 的诀窍 如果有一个明显的答案 我很抱歉 我有一个占用大量内存的程序 我想找到一种方法来减少其使用 但是在阅读了许多 SO 问题后 我认为在开始优化它之前我需要证明问题出在哪里 这就是我所做的 我在程序的开头添加了一个断
  • 异步方法的默认 EJB 事务模式?

    当我有一个 AsynchronousEJB 中的方法 并且我没有指定 TransactionAttribute 那么容器到底是如何处理事务边界的呢 显然 它不能使用调用线程的事务 那么它是做什么的呢 同样的问题 但涉及由 TimerServ
  • 使用 Spring RestTemplate 时忽略 SSL 证书验证

    我正在使用 Spring RestTemplate 发出 HTTPS 请求 并且我想忽略 SSL 证书 这是我创建restTemplate请求的代码 TrustStrategy acceptingTrustStrategy X509Cert
  • netty 4.x 中 ServerBootstrap.option() 和 ServerBootstrap.childOption() 有什么区别

    根据文档4 0 中值得注意的新内容 http netty io wiki new and noteworthy in 4 0 html wiki h3 31 netty4提供了新的bootstrap API 文档给出了以下代码示例 publ
  • Axis2 不返回自己的对象

    我编写了一些网络服务 其中一些返回一个简单的字符串 这个可以工作 另一些返回一个对象列表 不 axis2 1 5 1 无法处理集合类型 所以我将返回类型更改为Object 但我仍然收到这个异常 ERROR java lang Runtime
  • Hibernate添加带有子实体id的实体

    我的对象 状态 java Entity Table name STATE public class State Id GeneratedValue strategy GenerationType AUTO private Long id C
  • JPanel 上的圆形边框

    我这里得到的是一个带有圆形边框的 JPanel 其设置如下 panel setBorder new LineBorder PanelColor 5 true 问题是 在每个角上都有 2 条从外角到内角的对角不透明线 即边框的长度 边界后面的
  • 使用 Spring Boot 应用程序属性设置 tomcat 属性

    我想为启动提供的 tomcat 设置 maxSwallowSize 属性 我的 application properties 有这一行 server context parameters maxSwallowSize 20971520 由于
  • JAXB 将不需要的命名空间声明附加到标签

    我正在实现 XMPP 的自制子协议 并且使用 StAX 和 JAXB 的组合来解析 编组消息 当我整理一条消息时 我最终会得到大量不需要的命名空间声明
  • Android:从http获取文件并存储在SDCard中

    我已经遵循了许多类似问题中所写的内容 但仍然存在问题 从jsp我得到一个pdf 如果我转到URL 浏览器会自动打开pdf jsp页面会执行类似以下操作 Gets the pdf from the database BufferedInput
  • 如何用 JSON 表示数据库中的图像

    我需要基于数据库中的 blob 创建 JSON 为了获取 blob 图像 我使用下面的代码并在 json 数组中显示之后 Statement s connection createStatement ResultSet r s execut
  • 从邮件服务器读取发送的邮件

    我知道如何从 INBOX 文件夹中检索邮件 但现在我想从 SENT ITEMS 文件夹中检索邮件 我正在使用 imap 检索数据 让我知道我应该在此函数中传递什么参数才能从 SENT ITEMS 文件夹中获取邮件Folder folder
  • Java - 类型转换问题

    long a long Math pow 2 32 a 4294967296 long a int long Math pow 2 32 a 0 long a int Math pow 2 32 a 2147483647 WTF 第一个表达

随机推荐

  • WooCommerce:根据运输方式自动完成付款订单

    我有一种产品 人们可以直接打印 运送方式 1 或选择通过运送服务获取 运送方式 2 因此 如果他们选择仅直接打印 送货方式 2 订单应该自动完成 是否可以从 WooCommerce 扩展该代码片段 从我找到的文档中this https do
  • Apache POI - Word (docx) 文档中的多列

    我正在尝试创建一个包含多列的Word文档 这样做 而不是使用表格 的原因是数据将跨越多个页面 并且只有使用列我才能在添加到新页面之前填充整个页面 可以用 Apache POI 来完成吗 谢谢 使用先前创建的具有多列的空文档怎么样 像这样 X
  • 根据条件降序排列

    我想编写一个 LINQ to Entity 查询 它根据输入参数按升序或降序排序 有什么办法吗 以下是我的代码 请建议 public List
  • 当未初始化的内存传递给函数时如何断言/测试

    我遇到过这样的情况 有时发现我的部分代码传递了未初始化的内存 我正在寻找一种在使用调试堆运行时发生这种情况时可以断言的方法 这是一个可以在其他地方抛出的函数 以提供跟踪错误的额外帮助 void foo char data int dataB
  • jqplot、highcharts、flot如何从轴刻度处捕获点击事件

    我希望能够捕获与所有轴刻度挂钩的单击事件 这是我到目前为止所做的 http jsfiddle net grVFk 5074 http jsfiddle net grVFk 5074 如果有人知道如何使用任何图表插件来做到这一点 请分享 th
  • QtToolBar 按钮文本中带有下划线快捷键

    我有一个简单的 Qt 工具栏 带有纯文本按钮Action MainWindow MainWindow QWidget parent QMainWindow parent QToolBar toolBar new QToolBar this
  • 使用SoupStrainer选择性解析

    我正在尝试解析购物网站上的视频游戏标题列表 然而 由于项目列表全部存储在标签内 This http www crummy com software BeautifulSoup documentation html Improving 20P
  • 特定页面的访问者数量

    我想查看特定页面 我有该页面的 URL 上的访问者数量 我在 Analytics 中找不到输入 URL 来查找该特定页面的统计信息的位置 Go to Behavior gt Site Content gt All Pages and put
  • matlab中矩阵的排序

    我正在对矩阵进行模拟 假设是 5x5 矩阵 该矩阵的元素之一是已知的 下面的后方块 该位置不会始终位于中心 我想从该位置开始并螺旋式访问其他元素 我已按数字显示了顺序 如何在大矩阵 例如 1000x1000 中定义这个顺序 因为我无法手动完
  • 如何从 numpy 数组的每一行中仅获取第一个 True 值?

    我有一个 4x3 布尔 numpy 数组 我试图返回一个相同大小的数组 除了原始数组每行上第一个 True 值的位置之外 该数组全部为 False 所以如果我有一个起始数组 all bools np array False True Tru
  • 某些图像未在移动浏览器中显示(但在桌面浏览器中显示)

    我遇到的问题是 某些图像无法在 iPhone 上的移动浏览器中显示 但我可以在所有桌面浏览器中看到它们 在我的手机上 我只看到一个带有灰色边框的空白框 该图像应该在该位置 一些注意事项 这似乎是随机发生的 因为有些图像在一天显示 然后在第二
  • 如何将 ArrayList 传递给另一个应用程序中的活动?

    我正在尝试在两个应用程序之间共享数据 首先我想到将文件保存到SD卡然后读取它 但是这个解决方案不起作用 所以如果有办法发送一个文件 我会受伤ArrayList of an Object实现Parcelable 还可以采取什么其他方式来实现这
  • 我是否需要显式重载接受 const 左值引用作为右值引用的方法?

    目前我正在尝试右值引用 C 11 g 和 gnu x0 并且我想在我的类中实现移动语义 因为它感觉 正确 我是否需要重载通常接受 const 左值引用的每个函数才能从右值引用中受益 假设这是我的示例类 class Person public
  • 使用并行库添加到列表时保证线程安全的正确方法

    我循环访问连接字符串数组 并在每个循环中提取一些信息并将其添加到列表中 现在 我想使用并行库使其成为多线程 但我不确定该库是否保证对列表的写入是线程安全的 或者我是否需要使用锁定 List
  • 如何在django中调试ajax请求

    我知道例如 def home request if request method POST k p 1 return HttpResponse simplejson dumps dict mimetype application javas
  • Vim:将选定的文本通过管道传输到 shell cmd 并在 vim 信息/命令行上接收输出

    我想将选定的文本通过管道传输到 shell 命令并在 vim 信息 命令行上接收此 shell 命令的一行输出 我真正想做的事情 将选定的文本通过管道传输到pastebin类型的shell命令 并且我想接收shell cmd的输出 这是pa
  • 如何更改 Jekyll 网站的默认字体

    我是使用 Jekyll css 等的新手 我分叉了现在的杰基尔 https github com barryclark jekyll now回购 有没有办法可以更改或添加整个 jekyll 网站的默认字体 看起来像这个帖子 https st
  • 从另一个文本文件中读取基于键的文本文件作为列

    我是 Spark 新手 我正在尝试将表作为文本文件加载到 Spark 中 我想读取基于另一个文本文件列的文本文件 例如 Id 作为键 如果 B id 匹配 A id 那么我必须将文件 B 读入 Spark val file2 sc text
  • 即使设置了 CommandParameter,ICommand.CanExecute 也会传递 null

    我有一个棘手的问题 我正在绑定ContextMenu到一组ICommand 派生对象 并设置Command and CommandParameter每个属性MenuItem通过样式
  • 如何过滤动态嵌套列表对象java 8

    如何过滤动态嵌套列表对象java 8 Example class Items List