java ArrayList的操作流

最近搞了点java,因为写代码的手感问题,顺便写了个java的数组pipe()流,用法与stream()基本一样.

文件地址

戳这 如果你们觉得文件有一点点帮助,谢谢留下星星.(Android与java后端都可以使用)

为什么会有这个文件?

因为stream()有些api有些不符合我的需求,而java无法为已有类添加拓展方法限制了我只能自己构建一个流操作. 我有个业务需要一个firstWhere找出某个符合条件的元素, 元素可为空, stream我没有找到这个API,所以当我看到java的@FunctionalInterface这个语法的时候就决定写一个.

我是一个iOS开发,我习惯了swift提供给我的那些API语法
比如

  • firstWhere 条件判断筛选元素
  • prefix 筛选前几个
  • suffix 帅选后几个
  • contain 条件判断是否包含某个元素
  • Interger 数组separator join 变成分隔符字符串
  • map
  • filter
  • compactMap等等

为什么只有一个文件?

没有demo,是因为我希望大家有空可以看看源码,源码真的简单的要死.

API设计的小建议

pipe的链式调用 当下一个输出有可能是数组的时候,那他必须是SequenceOperator的返回 当下个输出是单个元素的时候,可以直接返回

帖个简单的用例

List list = Arrays.asList(2, 3, 4, 5, 6);
                String idss = SequenceOperator.build(list)
                        .map(Object::toString)
                        .map(Integer::parseInt)
                        .filter((e) -> e % 2 == 0)
                        .join(",");

List collect = SequenceOperator.build(list)
                        .map((e) -> e + 1)
                        .collect();

PS

stream()的api绝大部分情况下都是十分强大的,所以如果没有我这种特殊需求的话,还是用stream()的API更安全点,java官方代码的安全性绝对远高于我这种简单写法一万倍.

你可能感兴趣的:(java ArrayList的操作流)