Skip to content

wolray/seq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

seq

本项目提供一个强大而完备的流式编程API,并独创性的为Java添加类似生成器的编程机制。

网页端参考:阿里云社区

手机端参考:阿里开发者微信公众号

这一机制的设计思想与核心代码在上述公开文章中都已阐述完整,本项目是在此基础上的完全重写,未来发展也将主要面向开源社区需求。

文档请参考:Wiki

引用方式

项目已发布到Central Maven,直接引用即可

<dependency>
    <groupId>io.github.wolray</groupId>
    <artifactId>seq</artifactId>
    <version>2.0.0</version>
</dependency>

反馈

可使用中文直接提issue,也可添加微信radiumlei2010进群,方便大家沟通,收集反馈。

发布记录

2.1.0 (20260212)

由于Seq2SeqMap高度相关,还是把它加了回来,并配套提供了诸多转换方法,如mapKeys, mapValues, pairBy, pairWith等。

集合类型的Seq统一对齐SizeSeq,这是一层很有必要的抽象。

新增mapIf方法,流的映射更为方便了。

2.0.0 (20260207)

进行了完全重构,原本的Seqconsumer机制切换为了predicate机制,每次触发回调函数的同时会判定当前流是否终止,类似于Golang 1.23里的range from func,只不过返回的boolean代表终止而非Golang里的继续。 基于这样的根本性改造,Seq2Seq3等多参数流也被移除,在Java 17record关键字加持下,新建元组的开销很低,多参数流不再有必要维护。

除此以外,本次更新还完全重构和优化了Reducer的机制,去掉了多余的Transducer的概念,达到了一种大和谐的境界,不过用起来和之前倒是没啥区别。

1.0.2 (20231110)

新增IOChain, ByteSource, Seq2, Seq3, SeqList, SeqMap, SeqQueue, Splitter, BackedSeq

调整了Reducer, Transducer的部分逻辑,新增了groupBy, toMap等功能

1.0.1 (20230922)

新增IntSeq, Lazy, BatchedSeq, SeqSet, windowed, timeWindowed

About

A powerful generator-like streaming API for Java

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages