当前位置: 首页 > 知识库问答 >
问题:

流是否使用流源的特征?

谭桐
2023-03-14

从这个问题

报告不可变或并发的拆分器保证不会抛出ConcurrentModificationException。当然,CONCURRENT排除了语义上的大小,但这对客户机代码没有影响。

事实上,这些特性在Stream API中没有任何用途,因此,不一致地使用它们永远不会在任何地方被注意到。

这也是为什么每个中间操作都有清除并发、不可变和非空特性的效果的原因:流实现不使用这些特性,其表示流状态的内部类也不维护它们。

如果流不使用源的特征,那么流如何并行工作?流是否完全忽略了流源特征?

从这个问题收集器不知道我使用的是供应商提供的并发收集,所以特征不是从收集器html" target="_blank">容器的类型中获得的

  1. 流API在什么情况下考虑特性?
  2. 哪个操作重置哪个特性?

共有1个答案

柏正平
2023-03-14

你所要求的是可能的。这些答案中正确的措辞是,在忽略这些属性的那一刻,在未来的某个时候,它们可能会被流实现注入/读取/使用。

你在评论中还说:

someTreeSet().stream()
         .sorted()
         .... some other operations 

将调用排序后的。这根本不是真的,在这种情况下,该操作将不会被调用。这是一个流标志,TreeSet不会忽略并注入流实现。

 类似资料:
  • 一个类似于Iterator中的的方法,在异常抛出和布尔返回行为中(尽管没有与的约定)。 示例: 目标是在客户端代码调用此方法而不消耗流的情况下早期失败。 一个可接受的答案也可以是“没有解决方案存在”,并有充分的理由说明为什么规范不能添加这样的方法(如果有充分的理由的话)。看起来JDK流通常在其终端方法的开头有以下代码段: 因此,对于这些流,实现这样的方法似乎并不困难。

  • 考虑以下代码: 终端操作(如forEach)是否关闭已打开的底层文件? 请参阅文件javadoc的相关部分。列表: 返回的流封装了DirectoryStream。如果需要及时处理文件系统资源,则应使用try-with-resources构造来确保在流操作完成后调用流的close方法。 如果它不调用,那么在生成可维护代码时调用它的最佳替代方案是什么?

  • 本文向大家介绍Kafka流的特点?相关面试题,主要包含被问及Kafka流的特点?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka流的一些最佳功能是 Kafka Streams具有高度可扩展性和容错性。 Kafka部署到容器,VM,裸机,云。 我们可以说,Kafka流对于小型,中型和大型用例同样可行。 此外,它完全与Kafka安全集成。 编写标准Java应用程序。 完全一次处理语义。 而且

  • 我认为流API在这里是为了使代码更易于阅读。我觉得有点烦。流接口扩展了java。lang.AutoCloseable接口。 因此,如果你想正确地关闭流,你必须使用try-with资源。 清单1.不是很好,流没有关闭。 清单2.使用2嵌套try 清单3。当map返回流时,必须关闭stream()和map()函数。 我举的例子毫无意义。为了示例,我将jpg图像的路径替换为整数。但不要让这些细节分散你的