Loading src/test/java/ch10c/JukeboxQueriesTest.java +70 −2 Changes for src/test/java/ch10c/JukeboxQueriesTest.java: 70 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ class JukeboxQueriesTest { System.out.println(allSongs); } // Sorting, Collect to List @Test void shouldOrderByLeastPlayed() { List<Song> allSongs = songs.getSongs(); Loading @@ -39,20 +40,29 @@ class JukeboxQueriesTest { void shouldQueryForGenre() { List<Song> allSongs = songs.getSongs(); // ORDER MATTERS List<String> genres = allSongs.stream().map(song -> song.getGenre()) // find all genres in played music List<String> genres = allSongs.stream() .map(song -> song.getGenre()) .distinct() .collect(toList()); System.out.println("genres = " + genres); System.out.println(allSongs.stream().map(song -> song.getGenre()) // find number of distinct genres System.out.println(allSongs.stream() .map(song -> song.getGenre()) .distinct() .count()); // find number songs for each genre // GROUPING Map<String, Long> genreCount = allSongs.stream().map(song -> song.getGenre()) .collect(groupingBy(Function.identity(), counting())); System.out.println("genreCount = " + genreCount); } // OPTIONAL // max terminal // Comparator @Test void shouldFindMostPopularSong() { List<Song> allSongs = songs.getSongs(); Loading Loading @@ -82,6 +92,9 @@ class JukeboxQueriesTest { System.out.println("result = " + genreCount); } // STRAIGHTFORWARD // filter // toList @Test void shouldFindHowManySongsAreSomeSortOfRock() { List<Song> allSongs = songs.getSongs(); Loading @@ -93,6 +106,7 @@ class JukeboxQueriesTest { System.out.println(result); } // GROUPING @Test void shouldFindNumberOfTimesSongTitleAppears() { List<Song> allSongs = songs.getSongs(); Loading @@ -103,4 +117,58 @@ class JukeboxQueriesTest { System.out.println("result = " + result); } // STRAIGHTFORWARD // min terminal // OPTIONAL @Test void shouldGetOldestSong() { List<Song> allSongs = songs.getSongs(); Optional<Song> result = allSongs.stream() .min(Comparator.comparingInt(Song::getYear)); System.out.println("result = " + result.get()); } // STRAIGHTFORWARD // filter (with param) // toList @Test void shouldBeAbleToFindAllVersionsOfASong() { List<Song> allSongs = songs.getSongs(); String songTitle = "Hurt"; List<Song> result = allSongs.stream() .filter(song -> song.getTitle().equals(songTitle)) .collect(toList()); System.out.println("result = " + result); } @Test void shouldFilterMapCollect() { List<Song> allSongs = songs.getSongs(); String songTitle = "With a Little Help from My Friends"; List<String> result = allSongs.stream() .filter(song -> song.getTitle().equals(songTitle)) .map(Song::getArtist) .collect(toList()); System.out.println("result = " + result); } // PRIMITIVE STREAMS @Test void shouldBeAbleToCalculateCountForAllVersionsOfASong() { List<Song> allSongs = songs.getSongs(); String songTitle = "Hurt"; int result = allSongs.stream() .filter(song -> song.getTitle().equals(songTitle)) .mapToInt(Song::getTimesPlayed) .sum(); System.out.println("result = " + result); } } No newline at end of file Loading
src/test/java/ch10c/JukeboxQueriesTest.java +70 −2 Changes for src/test/java/ch10c/JukeboxQueriesTest.java: 70 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ class JukeboxQueriesTest { System.out.println(allSongs); } // Sorting, Collect to List @Test void shouldOrderByLeastPlayed() { List<Song> allSongs = songs.getSongs(); Loading @@ -39,20 +40,29 @@ class JukeboxQueriesTest { void shouldQueryForGenre() { List<Song> allSongs = songs.getSongs(); // ORDER MATTERS List<String> genres = allSongs.stream().map(song -> song.getGenre()) // find all genres in played music List<String> genres = allSongs.stream() .map(song -> song.getGenre()) .distinct() .collect(toList()); System.out.println("genres = " + genres); System.out.println(allSongs.stream().map(song -> song.getGenre()) // find number of distinct genres System.out.println(allSongs.stream() .map(song -> song.getGenre()) .distinct() .count()); // find number songs for each genre // GROUPING Map<String, Long> genreCount = allSongs.stream().map(song -> song.getGenre()) .collect(groupingBy(Function.identity(), counting())); System.out.println("genreCount = " + genreCount); } // OPTIONAL // max terminal // Comparator @Test void shouldFindMostPopularSong() { List<Song> allSongs = songs.getSongs(); Loading Loading @@ -82,6 +92,9 @@ class JukeboxQueriesTest { System.out.println("result = " + genreCount); } // STRAIGHTFORWARD // filter // toList @Test void shouldFindHowManySongsAreSomeSortOfRock() { List<Song> allSongs = songs.getSongs(); Loading @@ -93,6 +106,7 @@ class JukeboxQueriesTest { System.out.println(result); } // GROUPING @Test void shouldFindNumberOfTimesSongTitleAppears() { List<Song> allSongs = songs.getSongs(); Loading @@ -103,4 +117,58 @@ class JukeboxQueriesTest { System.out.println("result = " + result); } // STRAIGHTFORWARD // min terminal // OPTIONAL @Test void shouldGetOldestSong() { List<Song> allSongs = songs.getSongs(); Optional<Song> result = allSongs.stream() .min(Comparator.comparingInt(Song::getYear)); System.out.println("result = " + result.get()); } // STRAIGHTFORWARD // filter (with param) // toList @Test void shouldBeAbleToFindAllVersionsOfASong() { List<Song> allSongs = songs.getSongs(); String songTitle = "Hurt"; List<Song> result = allSongs.stream() .filter(song -> song.getTitle().equals(songTitle)) .collect(toList()); System.out.println("result = " + result); } @Test void shouldFilterMapCollect() { List<Song> allSongs = songs.getSongs(); String songTitle = "With a Little Help from My Friends"; List<String> result = allSongs.stream() .filter(song -> song.getTitle().equals(songTitle)) .map(Song::getArtist) .collect(toList()); System.out.println("result = " + result); } // PRIMITIVE STREAMS @Test void shouldBeAbleToCalculateCountForAllVersionsOfASong() { List<Song> allSongs = songs.getSongs(); String songTitle = "Hurt"; int result = allSongs.stream() .filter(song -> song.getTitle().equals(songTitle)) .mapToInt(Song::getTimesPlayed) .sum(); System.out.println("result = " + result); } } No newline at end of file