网站建设的总体需求专门做书籍设计的网站

web/2025/9/25 20:08:34/文章来源:
网站建设的总体需求,专门做书籍设计的网站,网站首页是什么意思,网站建设费用属于业务宣传费吗Java 8与往常一样是妥协和向后兼容的版本。 JSR-335专家组可能无法与某些读者就某些功能的范围或可行性达成一致的发行版。 请参阅Brian Goetz关于为什么…的一些具体解释。 …Java 8默认方法中不允许“最终” …Java 8默认方法中不允许“同步” 但是今天#xff0c;我们将… Java 8与往常一样是妥协和向后兼容的版本。 JSR-335专家组可能无法与某些读者就某些功能的范围或可行性达成一致的发行版。 请参阅Brian Goetz关于为什么…的一些具体解释。 …Java 8默认方法中不允许“最终” …Java 8默认方法中不允许“同步” 但是今天我们将专注于Streams API的“缺点”或者正如Brian Goetz可能指出的那样考虑到设计目标事情超出了范围。 并行流 并行计算很困难曾经很痛苦。 当Java 7首次附带新的现在已旧的 Fork / Join API时人们并不完全喜欢它。相反显然调用Stream.parallel()的简洁性是无与伦比的。 但是实际上很多人并不需要并行计算不要与多线程混淆。 在95的情况下人们可能更喜欢功能更强大的Streams API或者更通用的功能更强大的Collections API Iterable各种Iterable子类型都有很多很棒的方法。 但是更改Iterable是危险的。 甚至不Iterable通过潜在的Iterable.stream()方法将Iterable转换为Stream 似乎也冒着打开潘多拉盒子的风险 。 顺序流 因此如果JDK不发货我们将自己创建 流本身就很棒。 它们可能是无限的这是一个很酷的功能。 通常尤其是在函数式编程中集合的大小并不重要因为我们可以使用函数逐个元素地进行转换。 如果我们允许Streams纯粹是顺序的那么我们也可以使用以下任何一种很酷的方法并行Streams也可以使用其中的一些方法 cycle() –使每个流无限的保证方式 duplicate() –将一个流复制为两个等效流 foldLeft() -顺序和非缔合的替代reduce() foldRight() -顺序和非缔合的替代reduce() limitUntil() –将流限制为满足第一个条件的第一个条件之前的记录 limitWhile() –将流限制为第一个不满足谓词之前的记录 maxBy() –将流减少到最大映射值 minBy() –将流减少到最小映射值 partition() –将一个流划分为两个流一个满足一个谓词另一个不满足相同的谓词 reverse() –以相反的顺序产生一个新的流 skipUntil() –跳过记录直到满足谓词 skipWhile() –只要满足谓词就跳过记录 slice() –截取流的一部分即合并skip()和limit() splitAt() –在给定位置将一个流分成两个流 unzip() –将成对的流分成两个流 zip() –将两个流合并为一个成对的流 zipWithIndex() –将流及其对应的索引流合并为单个对流 jOOλ的新Seq类型可以完成所有操作 以上所有都是jOOλ的一部分。 jOOλ读作“ jewel”或“ dju-lambda”也用URL编写jOOL等是一种ASL 2.0许可的库它是在我们使用Java 8实施jOOQ集成测试时从我们自己的开发需求中产生的 。适合编写有关集合元组记录和所有SQL原因的测试。 但是Streams API感觉有点不足因此我们将JDK的Streams包装到我们自己的Seq类型中用于序列/顺序Stream的Seq // Wrap a stream in a sequence SeqInteger seq1 seq(Stream.of(1, 2, 3));// Or create a sequence directly from values SeqInteger seq2 Seq.of(1, 2, 3); 我们已经将Seq扩展JDK Stream接口的新接口因此您可以与其他Java API完全互操作地使用Seq保持现有方法不变 public interface SeqT extends StreamT {/*** The underlying {link Stream} implementation.*/StreamT stream();// [...] } 现在如果没有元组函数式编程仅是乐趣的一半。 不幸的是Java没有内置的元组虽然使用泛型创建元组库很容易但是当将Java与Scala或C甚至VB.NET 进行比较时 元组仍然是第二类语法公民。 但是… jOOλ也有元组 我们已经运行了一个代码生成器以生成1-8级的元组将来可能会添加更多例如以匹配Scala和jOOQ的 “魔术”级22。 并且如果库中有这样的元组则该库也需要相应的功能。 这些TupleN和FunctionN类型的本质总结如下 public class Tuple3T1, T2, T3 implements Tuple, ComparableTuple3T1, T2, T3, Serializable, Cloneable {public final T1 v1;public final T2 v2;public final T3 v3;// [...] } 和 FunctionalInterface public interface Function3T1, T2, T3, R {default R apply(Tuple3T1, T2, T3 args) {return apply(args.v1, args.v2, args.v3);}R apply(T1 v1, T2 v2, T3 v3); } 元组类型还有许多其他功能但让我们今天不做介绍。 另外我最近在reddit上与Gavin KingHibernate的创建者进行了有趣的讨论 。 从ORM的角度来看Java类似乎是SQL /关系元组的合适实现而且确实如此。 从ORM角度来看。 但是类和元组在本质上是不同的这对于大多数ORM来说是一个非常微妙的问题- 例如如Vlad Mihalcea所解释的 。 此外SQL的行值表达式即元组的概念与Java类可以建模的完全不同。 此主题将在后续的博客文章中介绍。 一些jOOλ示例 考虑到上述目标让我们来看一下如何通过示例来实现上述API 拉链 // (tuple(1, a), tuple(2, b), tuple(3, c)) Seq.of(1, 2, 3).zip(Seq.of(a, b, c));// (1:a, 2:b, 3:c) Seq.of(1, 2, 3).zip(Seq.of(a, b, c), (x, y) - x : y );// (tuple(a, 0), tuple(b, 1), tuple(c, 2)) Seq.of(a, b, c).zipWithIndex();// tuple((1, 2, 3), (a, b, c)) Seq.unzip(Seq.of(tuple(1, a),tuple(2, b),tuple(3, c) )); 元组已经变得非常方便了。 当我们将两个流“压缩”到一个流中时我们需要一个将两个值组合在一起的包装器值类型。 传统上人们可能已经使用Object[]来解决问题但是数组并不指示属性类型或程度。 不幸的是Java编译器无法SeqT T类型的有效边界。 这就是为什么我们只能有一个静态unzip()方法而不是实例方法的原因该方法的签名如下所示 // This works static T1, T2 Tuple2SeqT1, SeqT2 unzip(StreamTuple2T1, T2 stream) { ... }// This doesnt work: interface SeqT extends StreamT {Tuple2Seq???, Seq??? unzip(); } 跳过和限制 // (3, 4, 5) Seq.of(1, 2, 3, 4, 5).skipWhile(i - i 3);// (3, 4, 5) Seq.of(1, 2, 3, 4, 5).skipUntil(i - i 3);// (1, 2) Seq.of(1, 2, 3, 4, 5).limitWhile(i - i 3);// (1, 2) Seq.of(1, 2, 3, 4, 5).limitUntil(i - i 3); 其他功能库可能使用与跳过例如删除和限制例如采用不同的术语。 最终并不重要。 我们选择了现有Stream API中已经存在的术语 Stream.skip()和Stream.limit() 折叠式 // abc Seq.of(a, b, c).foldLeft(, (u, t) - t u);// cba Seq.of(a, b, c).foldRight(, (t, u) - t u); Stream.reduce()操作专为并行化而设计。 这意味着传递给它的函数必须具有以下重要属性 关联性 不干涉 无国籍 但是有时候您确实想使用不具有上述属性的函数来“减少”流因此您可能并不在乎减少的并行性。 这就是“折叠”出现的地方。 在此处可以看到有关缩小和折叠在Scala中各种差异的很好的解释。 分裂 // tuple((1, 2, 3), (1, 2, 3)) Seq.of(1, 2, 3).duplicate();// tuple((1, 3, 5), (2, 4, 6)) Seq.of(1, 2, 3, 4, 5, 6).partition(i - i % 2 ! 0)// tuple((1, 2), (3, 4, 5)) Seq.of(1, 2, 3, 4, 5).splitAt(2); 上面的功能都有一个共同点它们在单个流上运行以产生两个新的流这些流可以独立使用。 显然这意味着在内部必须消耗一些内存以保留部分消耗的流的缓冲区。 例如 复制需要跟踪一个流中已消耗的所有值而另一流中没有 分区需要快速前进到满足或不满足谓词的下一个值而不会丢失所有丢弃的值 拆分可能需要快速前进到拆分索引 为了获得一些真正的功能乐趣让我们看一下可能的splitAt()实现 static T Tuple2SeqT, SeqT splitAt(StreamT stream, long position) {return seq(stream).zipWithIndex().partition(t - t.v2 position).map((v1, v2) - tuple(v1.map(t - t.v1),v2.map(t - t.v1))); } …或附有评论 static T Tuple2SeqT, SeqT splitAt(StreamT stream, long position) {// Add jOOλ functionality to the stream// - local Type: SeqTreturn seq(stream)// Keep track of stream positions// with each element in the stream// - local Type: SeqTuple2T, Long.zipWithIndex()// Split the streams at position// - local Type: Tuple2SeqTuple2T, Long,// SeqTuple2T, Long.partition(t - t.v2 position)// Remove the indexes from zipWithIndex again// - local Type: Tuple2SeqT, SeqT.map((v1, v2) - tuple(v1.map(t - t.v1),v2.map(t - t.v1))); } 很好不是吗 另一方面 partition()可能实现要复杂一些。 这里Spliterator地用Iterator代替了新的Spliterator static T Tuple2SeqT, SeqT partition(StreamT stream, Predicate? super T predicate ) {final IteratorT it stream.iterator();final LinkedListT buffer1 new LinkedList();final LinkedListT buffer2 new LinkedList();class Partition implements IteratorT {final boolean b;Partition(boolean b) {this.b b;}void fetch() {while (buffer(b).isEmpty() it.hasNext()) {T next it.next();buffer(predicate.test(next)).offer(next);}}LinkedListT buffer(boolean test) {return test ? buffer1 : buffer2;}Overridepublic boolean hasNext() {fetch();return !buffer(b).isEmpty();}Overridepublic T next() {return buffer(b).poll();}}return tuple(seq(new Partition(true)), seq(new Partition(false))); } 我将让您进行练习并验证上面的代码。 立即获取并为jOOλ做出贡献 以上所有内容都是jOOλ的一部分可从GitHub免费获得。 已经有部分的Java-8就绪全面的库调用functionaljava 它走的更远比jOOλ。 但是我们相信Java 8的Streams API所缺少的实际上只是对顺序流非常有用的几种方法。 在上一篇文章中我们展示了如何使用简单的JDBC包装器将lambda引入基于String的SQL中 当然我们仍然认为应该使用jOOQ代替 。 今天我们已经展示了如何使用jOOλ轻松编写出色的功能和顺序流处理。 请继续关注以在不久的将来获得更多收益当然非常欢迎拉动请求 翻译自: https://www.javacodegeeks.com/2014/09/when-the-java-8-streams-api-is-not-enough.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度网站如何建设中国室内设计网站有哪些

首先,来看下效果图 在线体验地址:https://geojson.hxkj.vip,并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

做网站数据存在哪里别人在百度冒用公司旗号做网站

概述 npm(Node Package Manager)是一个JavaScript编程语言的包管理器,用于Node.js应用程序。它允许用户安装、共享和管理具有重复使用价值的代码(包),这些代码可以是库、工具或应用程序。 npm常用命令详解…

网站建设公司自适应源码顺企网上海网站建设

macOs系统安装软件的疑问 所有问题mac系统文件结构我用mac安装软件,不用像windows一样创建文件夹吗只能安装到Applications文件夹吗安装程序的指南和提供的安装选项是什么软件安装在Applications下的/appName文件夹,它的所有数据都会在该文件夹吗如果卸载…

网站建设的项目方案网站分站程序

jsf 项目上周有一篇很棒的stackoverflow博客文章,主题是“ Javascript框架的残酷生命周期” 。 这篇文章是关于Javascript UI框架(angularjs,angular,jquery和react)的流行和流行的速度。 这篇文章的关键指标是每月关于…

网站建设公司广告语深圳网站建设最专

直接上效果图: 代码仓库和视频演示b站视频005期: 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示: 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…

网站建设综合实训心得体会张梅 合肥网站建设

3D 管道设计软件是大多数行业工程工作的主要部分,例如: 电力、石油和天然气、石化、炼油厂、纸浆和造纸、化学品和加工业。 全球各工程公司使用了近 50 种工厂或管道设计软件。 每个软件都有优点和缺点,包括价格点。 EPC 和业主部门当前的趋势…

网站收录提交工具新注册建筑公司名称大全

目录 1.介绍 2.模板传参 1.变量传参 2.表达式 3.控制语句 4.过滤器 5.自定义过滤器 6.测试器 7.块和继承 flask基础1 1.介绍 Jinja2:是Python的Web项目中被广泛应用的模板引擎,是由Python实现的模板语言,Jinja2 的作者也是 Flask 的作 者。他的设计思想来源于Django的模…

网站设计常州网监备案网站更换域名

一 什么是网关?为什么选择 Gateway? 网关功能如下: 身份认证和权限校验服务路由、负载均衡请求限流 在 Spring Cloud 中网关的实现包含两种: Gateway(推荐):是基于 Spring5 中提供的 WebFlux &#xff…

响应式网站开发步骤如何让自己做的网页有网站

实在受不了了,只好出来说两句。好歹也是数学这一行的,看她被你们糟蹋成这样实在不忍心。“无穷大量”和“无穷小量”在高等数学中都是趋于特定极限的变量的称呼,一个变量在某一极限过程中趋于无穷大(小),那么此变量称为“无穷大(小…

做的网站如何全屏丽江建设局网站

双显示器设置:如何设置一台电脑两个显示器 -来源:互联网 作者:佚名 时间:04-11 09:00:18 【大 中 小】 点评:双显示器设置,如何设置一台电脑两个显示器:一般来说一台电脑通常只配一个显示器,在我…

seo网站排名优化工具广安专业网站建设报价

转载自 Java NIO系列教程(十一) Pipe 原文链接 作者:Jakob Jenkov 译者:黄忠 校对:丁一 Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道&#…

苏州高端网站建设机构大连做网站谁家售后好

论文的重要加分点除了内容,还有它相信每年临近准备毕设或者毕业论文的同学会遇到这些问题:“我的毕业论文提交一次就被导师批评一次,内容不行就算了,格式也有问题!改论文改到绝望”“期刊的版式要求不是统一的&#xf…

网站备案后怎么建网站百度竞价可以自学吗

我是阿梁,最近在负责的项目代码,也算是祖传代码了,里面有很多头文件嵌套的情况,即a.h包含b.h,b.h又包含c.h,c.h又包含d.h......遂找到一份华子的C语言编程规范学习一下,并结合自己的理解写成这篇文章,以规范自己的代码。 1. 头文件嵌套的缺点 依赖:若x.h包含了y.h,则…

广州建站免费模板网站建设能解决哪些问题

linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性&…

网站排名seo网站建设静态部分总结

阅读本文大概需要5分钟。这个问题很多读者都问过,基本上每隔几篇原创就会有人留言问,还有公众号后台和知乎私聊。之前在一次留言中我承诺专门开一篇文章来聊聊这个话题,今天想着要兑现这个诺言了。为啥最近会存在这个问题呢,原因其…

网站百度关键词seo排名优化河南省住房和城乡建设厅门户网站

java11osgi最近,我致力于在OSGi环境中使Apache Hive工作。 虽然没有被证明是小菜一碟(软件对吗?。。为什么我不感到惊讶? ),它引导我解决了各种Java和OSGi错误。 在这里,我列出了其中一些让我有…

网站的根目录中汕头招聘网官网登录

算法之插入排序 插入排序 核心思想:将待排序数插入到已经拍好的有序区的合适的位置 nums [9, 1, 8, 5, 6] nums [None] nums length len(nums) print(nums[1:], length) # 1: 从索引1开始,排除 None count_move 0for i in range(2, length):nums…

郑州网站建设修改黄骅网站

解析 想到了按位&#xff0c;但卡在了进位… qwq 当时总是想一位一位往后转化&#xff0c;但是那样确实做不了 判断第k位时把每个数的前k-1位提出来 sort一下 再维护双指针&#xff0c;就可以很方便的统计进位的个数了 代码 #include<bits/stdc.h> using namespace st…

网站开发后需要交接哪些材料厚街做网站的公司

在开发臭氧发生器的时&#xff0c;我们需要一个高分辨率的AD采集&#xff0c;于是选择了AD7192&#xff0c;选择这款ADC的原因比较简单。首先它是24位的符合我们的精度要求&#xff1b;其次它自带时钟&#xff0c;便于节省空间&#xff1b;第三它有4路单端或2路差分输入&#x…

做破解的网站wordpress 安装主题 无法调用图片和颜色

H.264/AVC视频编解码技术详解系列笔记 是对 H.264/AVC视频编解码技术详解 课程的学习 文章目录人与世界的交互视频信号的表示方法视频压缩编码视频信息为什么可以被压缩&#xff1f;视频压缩编码的分类&#xff1a;视频压缩编码的基本技术人与世界的交互 从远古时代开始&#…