java的for()、增强for()、foreach()、stream().foreach()有什么区别

2023-05-23,,

本篇内容主要讲解“javafor()、增强for()、foreach()、stream().foreach()有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java的for()、增强for()、foreach()、stream().foreach()有什么区别”吧!

  • 测试一

public class TestFor {
    private static void doSome(String s) {
    }
    public static void main(String[] args) {
        /*添加数据*/
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add("第" + i + "条数据");
        }
        /*for循环*/
        long st1 = System.currentTimeMillis();
        for (int i = 0; i < list.size(); i++) {
            doSome(list.get(i));
        }
        /*增强for循环*/
        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);
    }
    /*时间输出*/
	public static void print(long s1, long s2, long s3, long s4, long s5) {
        System.out.println("for           循环: " + (s2 - s1) + "ms");
        System.out.println("增强for       循环: " + (s3 - s2) + "ms");
        System.out.println("foreach       循环:" + (s4 - s3) + "ms");
        System.out.println("stream.foreach循环:" + (s5 - s4) + "ms");
    }
}

结果:

	for           循环: 0ms
	增强for       循环: 0ms
	foreach       循环:129ms
	stream.foreach循环:3ms

  • 测试二

List<String> list = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
	list.add("第" + i + "条数据");
}

结果:

	for           循环: 1ms
	增强for       循环: 1ms
	foreach       循环:121ms
	stream.foreach循环:3ms

  • 测试三

List<String> list = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
	list.add("第" + i + "条数据");
}

结果:

	for           循环: 17ms
	增强for       循环: 23ms
	foreach       循环:165ms
	stream.foreach循环:18ms

  • 测试四

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

结果:

	for           循环: 184ms
	增强for       循环: 169ms
	foreach       循环:224ms
	stream.foreach循环:116ms

到此,相信大家对“java的for()、增强for()、foreach()、stream().foreach()有什么区别”有了更深的了解,不妨来实际操作一番吧!这里是本站网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

《java的for()、增强for()、foreach()、stream().foreach()有什么区别.doc》

下载本文的Word格式文档,以方便收藏与打印。