摘要:網(wǎng)上介紹和集合新特性的代碼太千篇一律了,我來提供些不一樣的。或者實現(xiàn)如下它的實現(xiàn)沒有使用,因為是一種強大到能延遲處理和并行處理的,我們簡單的集合操作不需要這么高級的能力。目前只寫了三個方法,如果有需求,還可以擴充更多的方法。
網(wǎng)上介紹Java 8 lambda和集合新特性的代碼太千篇一律了,我來提供些不一樣的。雖然很簡單,但也是工業(yè)級代碼,不是網(wǎng)上抄來抄去的教學代碼。權(quán)當給大家提供一個思路。
你想把Collection
Collectionelements1 = ..., elements2 = ...; Collection rs = Colls.map(elements, t->new R(t)); // 或者 Colls.map(elements, R::new); Collection allElements = Colls.copy(elements1, elements2); Collection sortedElements = Colls.copySort(comparator, elements1, elements2);
Colls實現(xiàn)如下:
import java.util.*; import java.util.function.Function; public abstract class Colls { public staticList map(Collection coll, Function transformer) { List result = new ArrayList<>(coll.size()); for (T t : coll) { result.add(transformer.apply(t)); } return result; } @SafeVarargs public static List copy(Collection ... colls) { List list = new ArrayList<>(); for (Collection coll : colls) { list.addAll(coll); } return list; } @SafeVarargs public static List copySort(Comparator comparator, Collection ... colls) { List list = copy(colls); Collections.sort(list, comparator); return list; } }
它的實現(xiàn)沒有使用stream API,因為stream是一種強大到能延遲處理和并行處理的API,我們簡單的集合操作不需要這么高級的能力。
目前只寫了三個方法,如果有需求,還可以擴充更多的方法。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/64238.html
摘要:假如你寫了類似這樣的和偽代碼問題來了,和分別用了兩個分開的事務(wù),如果你用了或,并且是的,這就沒法運行。你需要讓兩次調(diào)用運行在同一個事務(wù)里。 當你采用Spring之類的框架,用了聲明式事務(wù),難道每一段需要事務(wù)的代碼都必須寫成一個bean method,再標上@Transactional? 未免太麻煩了,不信你瞧。假如你寫了類似這樣的Controller和Service (偽代碼): ...
摘要:表達式體現(xiàn)了函數(shù)式編程的思想,即一個函數(shù)亦可以作為另一個函數(shù)參數(shù)和返回值,使用了函數(shù)作參數(shù)返回值的函數(shù)被稱為高階函數(shù)。對流對象進行及早求值,返回值不在是一個對象。 Java8主要的改變是為集合框架增加了流的概念,提高了集合的抽象層次。相比于舊有框架直接操作數(shù)據(jù)的內(nèi)部處理方式,流+高階函數(shù)的外部處理方式對數(shù)據(jù)封裝更好。同時流的概念使得對并發(fā)編程支持更強。 在語法上Java8提供了Lamb...
摘要:自定義函數(shù)式接口我們在前面例子中實現(xiàn)的蘋果篩選接口就是一個函數(shù)式接口定義如下,正因為如此我們可以將篩選邏輯參數(shù)化,并應用表達式僅包含一個抽象方法,依照定義可以將其視為一個函數(shù)式接口。 Lambda 表達式是 java 8th 給我們帶來的幾個重量級新特性之一,借用 lambda 表達式可以讓我們的程序設(shè)計更加簡潔。最近新的項目摒棄了 6th 版本,全面基于 8th 進行開發(fā),本文將探討...
摘要:新特性總覽標簽本文主要介紹的新特性,包括表達式方法引用流默認方法組合式異步編程新的時間,等等各個方面。還有對應的和類型的函數(shù)連接字符串廣義的歸約匯總起始值,映射方法,二元結(jié)合二元結(jié)合。使用并行流時要注意避免共享可變狀態(tài)。 Java8新特性總覽 標簽: java [TOC] 本文主要介紹 Java 8 的新特性,包括 Lambda 表達式、方法引用、流(Stream API)、默認方...
閱讀 3044·2021-11-22 09:34
閱讀 3636·2021-08-31 09:45
閱讀 3836·2019-08-30 13:57
閱讀 1670·2019-08-29 15:11
閱讀 1681·2019-08-28 18:04
閱讀 3218·2019-08-28 17:59
閱讀 1558·2019-08-26 13:35
閱讀 2188·2019-08-26 10:12