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<Integer> 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<Integer> collect = SequenceOperator.build(list)
                        .map((e) -> e + 1)
                        .collect();

PS

stream()的api絕大部分情況下都是十分強大的,所以如果沒有我這種特殊需求的話,還是用stream()的API更安全點,java官方代碼的安全性絕對遠高于我這種簡單寫法一萬倍.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容