java - 将原始 int、long、double 收集到列表中的最佳方法
问题描述
假设我有一个包含多个字段的数十亿对象列表,我需要从这些满足特定条件的对象中收集一个 int 字段。
由于可能有 n 个项目(动态长度数据),所以我不能直接在原始 int[] 下收集它们,并将它们的维度设置为某个值。
例如:int collect[] = new int[1_000_000_000]
- 不会工作!
由于它会保留并浪费大量内存,所以我需要一个动态集合数据结构,如链表。但是它们的问题是它们会导致很多不必要的自动装箱和取消装箱,当我将对该 int 值进行操作时。
收集它们的最佳方法是什么,以便没有将 int 包装(自动装箱)到 Integer {因为它会增加不必要的 GC 工作},并且内存使用量尽可能低。
解决方案
也许你可以尝试类似的东西listOfBillion.stream().filter(your condition here).collect()
推荐阅读
- angular - 找不到命名空间“Microsoft”
- javascript - 如何从 node/express 中的后端(端口:3001)路由重定向到前端(端口:3000)?
- c# - 在 LINQ lambda 中解包元组
- c++ - c ++检查字符串是否是有效的正则表达式字符串,无异常
- https - 通过 https 的 Socket.io 服务器
- flutter - 如何在本地保存 Flutter 中的状态
- python - 使用 pyenv 和 anaconda 环境时遇到问题
- javascript - 尝试使用简单的显示/隐藏滑块来显示单独的 div,无法将其映射到 slider.value 到数组
- php - 将多个图像路径插入多列
- java - Jira Rest Java 客户端:“403 Forbidden”错误