溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java的for()、增強(qiáng)for()、foreach()、stream().foreach()有什么區(qū)別

發(fā)布時(shí)間:2021-11-16 09:43:47 來(lái)源:億速云 閱讀:437 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“java的for()、增強(qiáng)for()、foreach()、stream().foreach()有什么區(qū)別”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“java的for()、增強(qiáng)for()、foreach()、stream().foreach()有什么區(qū)別”吧!

  • 測(cè)試一

public class TestFor {
    private static void doSome(String s) {
    }
    public static void main(String[] args) {
        /*添加數(shù)據(jù)*/
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add("第" + i + "條數(shù)據(jù)");
        }
        /*for循環(huán)*/
        long st1 = System.currentTimeMillis();
        for (int i = 0; i < list.size(); i++) {
            doSome(list.get(i));
        }
        /*增強(qiáng)for循環(huán)*/
        long st2 = System.currentTimeMillis();
        for (String s : list) {
            doSome(s);
        }
        /*foreach*/
        long st3 = System.currentTimeMillis();
        list.forEach(s -> doSome(s));
        /*stream.foreach*/
        long st4 = System.currentTimeMillis();
        list.stream().forEach(s -> doSome(s));
        long st5 = System.currentTimeMillis();
        print(st1, st2, st3, st4, st5);
    }
    /*時(shí)間輸出*/
	public static void print(long s1, long s2, long s3, long s4, long s5) {
        System.out.println("for           循環(huán): " + (s2 - s1) + "ms");
        System.out.println("增強(qiáng)for       循環(huán): " + (s3 - s2) + "ms");
        System.out.println("foreach       循環(huán):" + (s4 - s3) + "ms");
        System.out.println("stream.foreach循環(huán):" + (s5 - s4) + "ms");
    }
}

結(jié)果:

	for           循環(huán): 0ms
	增強(qiáng)for       循環(huán): 0ms
	foreach       循環(huán):129ms
	stream.foreach循環(huán):3ms

  • 測(cè)試二

List<String> list = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
	list.add("第" + i + "條數(shù)據(jù)");
}

結(jié)果:

	for           循環(huán): 1ms
	增強(qiáng)for       循環(huán): 1ms
	foreach       循環(huán):121ms
	stream.foreach循環(huán):3ms

  • 測(cè)試三

List<String> list = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
	list.add("第" + i + "條數(shù)據(jù)");
}

結(jié)果:

	for           循環(huán): 17ms
	增強(qiáng)for       循環(huán): 23ms
	foreach       循環(huán):165ms
	stream.foreach循環(huán):18ms

  • 測(cè)試四

private static void doSome(String s) {
	try {
		Thread.sleep(1);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
}

結(jié)果:

	for           循環(huán): 184ms
	增強(qiáng)for       循環(huán): 169ms
	foreach       循環(huán):224ms
	stream.foreach循環(huán):116ms

到此,相信大家對(duì)“java的for()、增強(qiáng)for()、foreach()、stream().foreach()有什么區(qū)別”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI