欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

java8的新特性怎么使用

這篇文章主要介紹“java8的新特性怎么使用”,在日常操作中,相信很多人在java8的新特性怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java8的新特性怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

網(wǎng)站設(shè)計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都網(wǎng)站制作、網(wǎng)站建設(shè)收費合理;免費進行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運營了10多年的創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司。

1)Lambda表達式

	概念:java8中增加了一個新的語法--Lambda表達式,并且引入了一個新的操作符(Lambda操作符): -> 
	
	Lambda操作符 -> :
		  -> 將Lambda表達式分為兩個部分:
			左側(cè):指定了Lambda表達式需要的參數(shù),參數(shù)的數(shù)據(jù)類型可以由編譯器的“類型推斷”機制推斷得出,故可以省略。
			右側(cè):指定了Lambda表達式的方法體,即Lambda表達式要執(zhí)行的功能。
	
	語法格式:
		
		格式一:無參數(shù),無返回值
				() -> System.out.println("Hello Lambda!");

		格式二:有一個參數(shù),并且無返回值
				(x) -> System.out.println(x)

		格式三:若只有一個參數(shù),小括號可以省略不寫
				x -> System.out.println(x)

		格式四:有兩個以上的參數(shù),有返回值,并且 Lambda 體中有多條語句
				(x, y) -> {
					System.out.println("函數(shù)式接口");
					return Integer.compare(x, y);
				};

		格式五:若 Lambda 體中只有一條語句, return 和 大括號都可以省略不寫
				(x, y) -> Integer.compare(x, y);

		格式六:Lambda 表達式的參數(shù)列表的數(shù)據(jù)類型可以省略不寫,因為JVM編譯器通過上下文推斷出,數(shù)據(jù)類型,即“類型推斷”
				(Integer x, Integer y) -> Integer.compare(x, y);			
				
				

2)函數(shù)式接口

	概念:只有一個抽象方法(默認方法與靜態(tài)方法除外)的接口,稱為函數(shù)式接口!
	
	補充:java8中,接口里可以有default方法(默認方法)和static方法(靜態(tài)方法),實現(xiàn)類默認會繼承defaul方法和static方法。
	
	聲明一個函數(shù)式接口:
	
		@FunctionalInterface
		public interface FirstInterface {
			void run();
		}
	
	說明:
		1)可以通過Lambda表達式來創(chuàng)建函數(shù)式接口的對象。
		2)可以在函數(shù)式接口上使用@FunctionalInterface注解,這樣我們就可以根據(jù)該注解來判斷這個接口是否是一個函數(shù)式接口。
		3)Java8內(nèi)置的四個核心函數(shù)式接口
				函數(shù)式接口				參數(shù)類型	返回類型	抽象方法			用途
			消費型接口:Consumer<T>			T		void		void accept(T t)	對類型為T的對象執(zhí)行某一操作。
			供給型接口:Supplier<T>			無		T			T get()				返回類型為T的對象。
			函數(shù)型接口:Function<T, R>		T		R			R apply(T t)		對類型為T的對象執(zhí)行某一操作,并返回R類型的結(jié)果。
			斷言型接口:Predicate<T>		T		boolean		boolean test(T t)	確定類型為T的對象是否滿足某約束,并返回boolean值。
			
			eg:
				// 對String類型的對象執(zhí)行Lambda表達式(x -> System.out.println(x))的方法體。
				Consumer<String> strConsumer = x -> System.out.println(x);		// 創(chuàng)建一個Consumer(消費型接口)的對象
				strConsumer.accept("Consumer的accept方法!");					// 執(zhí)行
			
				FirstInterface firstObj = () -> System.out.println("Hello Lambda!");
				firstObj.run();
			
	
3)方法引用

	方法引用:
		說明:
			1)若Lambda方法體中的功能,已經(jīng)有方法提供了實現(xiàn),則可以使用方法引用。
			2)使用操作符 :: 將方法名和對象或類的名字分隔開來。
			
		格式:
		?  對象名 :: 實例方法名
		?  類名   :: 靜態(tài)方法名
		?  類名   :: 實例方法名
		eg:
			Comparator<Integer> com1 = (x, y) -> Integer.compare(x, y);
			Comparator<Integer> com2 = Integer::compare;
	
	構(gòu)造器引用
		格式: 類名 :: new
		eg:
			Supplier<Student> sup1 = () -> new Student();
			Supplier<Student> sup2 = Student::new;
		
	數(shù)組引用
		格式: type[] :: new
		eg:
			Function<Integer, String[]> fun1 = (args) -> new String[args];
			Function<Integer, String[]> fun2 = String[]::new;

			
4)Stream API

概念:Stream用于操作集合、數(shù)組等元素序列。

Stream API 的操作步驟

	1)創(chuàng)建Stream
	
		創(chuàng)建Stream的方式:
			1>通過Collection中的 stream() 或 parallelStream() 來創(chuàng)建一個Stream
				eg:
					List<String> list = new ArrayList<>();
					Stream<String> stream = list.stream(); 					//獲取一個順序流
					Stream<String> parallelStream = list.parallelStream(); 	//獲取一個并行流
				
			2>通過Arrays中的stream(T[] array)創(chuàng)建一個Stream
			3>通過Stream中的
				of(T... values)									創(chuàng)建一個Stream
				generate(Supplier<T> s)							創(chuàng)建一個無限Stream
				iterate(final T seed, final UnaryOperator<T> f)	創(chuàng)建一個無限Stream
				

	2)Stream的中間操作
	
		Stream<T> filter(Predicate<? super T> predicate)	從流中排除某些元素
		Stream<T> limit(long n);							將流截斷,只保留流中的前n個元素
		Stream<T> skip(long n);								將流中的前n個元素剔除掉
		Stream<T> distinct();								將流中的元素進行去重操作。根據(jù)元素的hashCode()方法和equals()方法來確定唯一性。
		
		Stream<T> sorted();									將流中的元素進行自然排序
		Stream<T> sorted(Comparator<? super T> comparator); 將流中的元素按照指定的規(guī)則排序
		
		<R> Stream<R> map(Function<? super T, ? extends R> mapper);		
		
			1>說明:將流中的元素進行處理后,用新生成的元素代替原來的元素。注:新元素的類型與舊元素的類型可能不一樣。
			2>參數(shù):一個函數(shù)式接口,用傳入的函數(shù)來生成新的元素。
			3>舉例:Stream<String> stream = strList.stream().map(String::toUpperCase);
		
		<R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);
		
			說明:將流中的每個值都換成另一個流,然后把所有流連接成一個流。
		
		
		<R, A> R collect(Collector<? super T, A, R> collector);	
		
			1>說明:將流轉(zhuǎn)換為其它形式,將流中的元素進行分組、拼接等。
			2>舉例:List<String> list = strList.stream().map(String::toUpperCase).collect(Collectors.toList());
	

	3)Stream的終端操作
	
		void forEach(Consumer<? super T> action);	遍歷流中的所有元素
		
		boolean allMatch(Predicate<? super T> predicate);	檢查所有的元素是否都匹配
				anyMatch									檢查是否有元素匹配
				noneMatch									檢查是否有元素不匹配
		
		Optional<T> findFirst();							返回第一個元素
		Optional<T> findAny();								返回流中任意一個元素
		
		long count();										返回流中元素的總數(shù)
		Optional<T> max(Comparator<? super T> comparator);	返回流中最大的元素
		Optional<T> min(Comparator<? super T> comparator);	返回流中最小的元素
	
	
	說明:
		1>只有調(diào)用終端操作后,所有的中間操作才會去執(zhí)行,若沒有調(diào)用終端操作,那么所有的中間操作都將不會執(zhí)行,這種模式叫做"惰性求值"。
		2>流只能使用一次,即只能調(diào)用一次終端操作。

到此,關(guān)于“java8的新特性怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

當(dāng)前文章:java8的新特性怎么使用
文章分享:http://aaarwkj.com/article14/igsode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)頁設(shè)計公司全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
国产日产精品一区二区三区四区 | 少妇互射视频免费视频| 国产一区二区精品小视频| 欧美日韩国产另类久久| 国外男女性生活在线视频| 久久国产综合精品电影| 美女高潮啪啪啪91| 亚洲欧美丝袜清纯另类| 伊在人天堂亚洲香蕉精品区| 国语av一区二区三区| 亚洲国产成人久久综合区| 91亚洲精品国产一区| 日韩高清中文字幕在线| av中文资源在线观看| 国产精品日韩一区视频| 国产又大又爽免费视频| 视频在线免费观看97| 国产欧美日韩综合一区| 在线观看视频网站一卡二卡| 亚洲欧洲日本在线天堂| 色吊最新在线视频免费观看| 在线播放精品免费不卡| 国产l精品国产亚洲区久久| 国产精品日产三级在线观看 | 中文字幕黄色三级视频| 中文字幕成人免费看片| 亚洲午夜精品毛片成人| 不用播放器的av蜜臀| 亚洲av区一区二区三| 夫妻过性生活视频播放| 丝袜美腿一区二区三区动态图| 亚洲欧美日韩另类自拍| 欧美在线观看黄片视频| 一区二区三区视频免费观看| 日韩av高清在线免费观看| 国产精品大片久久激情四射| 蜜臀91精品视频在线观看| 国产精品久久99粉嫩| 日韩欧美在线一区二区| 色哟哟网站在线观看入口| 久久91超碰青草在哪里看|