Created
October 7, 2013 18:05
-
-
Save aglassman/6872342 to your computer and use it in GitHub Desktop.
This class will run a few simple tests using the new Java 8 features 'lambda expressions' and 'Streams'.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Arrays; | |
import java.util.List; | |
import java.util.ArrayList; | |
import java.util.stream.*; | |
import java.io.BufferedReader; | |
import java.io.FileReader; | |
import java.io.File; | |
public class JavaEightTests | |
{ | |
public static void main(String[] args) throws Exception | |
{ | |
System.out.println("Welcome to Java 8"); | |
JavaEightTests jet = new JavaEightTests(); | |
List<String> words = JavaEightTests.getLinuxWords(); | |
jet.test1(); | |
jet.processStream(words.stream()); | |
jet.processStream(words.stream()); | |
jet.processStream(words.parallelStream()); | |
jet.processStream(words.parallelStream()); | |
} | |
public void processStream(Stream<String> wordStream) throws Exception | |
{ | |
Long start = System.currentTimeMillis(); | |
List<String> beginsWithTBothCase = wordStream | |
.map(s -> { | |
for(int i = 0; i < 100; i++) | |
{ | |
s = s.toLowerCase().toUpperCase(); | |
} | |
return s; | |
}) | |
.collect(Collectors.toList()); | |
long totalTime = System.currentTimeMillis() - start; | |
System.out.println(String.format("Task took %.3f seconds to execute.", totalTime/1000f)); | |
} | |
public void test1() | |
{ | |
List<String> strings = Arrays.asList("One","Two","Three","Four","Five"); | |
List<String> longerThanThree = strings | |
.stream() | |
.filter(s -> s.length() > 3) | |
.collect(Collectors.toList()); | |
List<String> uppers = strings | |
.stream() | |
.map(s -> s.toUpperCase()) | |
.collect(Collectors.toList()); | |
List<String> beginsWithTBothCase = strings | |
.stream() | |
.filter(s -> s.startsWith("T")) | |
.map(s -> s.toLowerCase() + s.toUpperCase()) | |
.collect(Collectors.toList()); | |
System.out.println(strings); | |
System.out.println(longerThanThree); | |
System.out.println(uppers); | |
System.out.println(beginsWithTBothCase); | |
} | |
public static List<String> getLinuxWords() throws Exception | |
{ | |
BufferedReader br = new BufferedReader(new FileReader(new File("linux.words"))); | |
List<String> linuxWords = new ArrayList<String>(); | |
String line = br.readLine(); | |
while(line != null) | |
{ | |
linuxWords.add(line); | |
line = br.readLine(); | |
} | |
return linuxWords; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment