package com.tc.test; import org.junit.Test; import java.io.File; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import static java.lang.System.out; public class TestLambdaStream { String filePath = "D:\\android_werkspace"; @Test public void testLambda(){ File file = new File(filePath); if (file.exists() && file.isDirectory()){ String[] target = file.list(((a, name) -> { if (name.endsWith(".gradle")){ return true; } return false; })); for (String fileName : target) { out.println(fileName); } } } @Test public void testStream(){ File file = new File(filePath); if (file.exists() && file.isDirectory()){ List<String> target = Arrays.asList(file.list()).stream().filter(name -> name.endsWith(".gradle")).collect(Collectors.toList()); target.stream().forEach(filename -> out.println(filename)); } } @Test public void testForeach(){ File file = Paths.get(filePath).toFile(); if (file.exists() && file.isDirectory()){ List<String> target = new ArrayList<>(); for (String fileName : file.list()) { if (fileName.endsWith(".gradle")){ target.add(fileName); } } out.println(target); } } } 数据量少的时候,foreach的效率最高。