Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 69168df

Browse files
update exercise solutions using new features in Java 10-17
1 parent f7f671e commit 69168df

File tree

4 files changed

+26
-34
lines changed

4 files changed

+26
-34
lines changed

‎src/com/example/exercises/Exercise10.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package com.example.exercises;
22

3-
import static java.lang.String.format;
4-
import static java.lang.System.out;
53
import static java.util.Comparator.comparing;
6-
import static java.util.function.BinaryOperator.maxBy;
74
import static java.util.stream.Collectors.groupingBy;
8-
import static java.util.stream.Collectors.reducing;
5+
import static java.util.stream.Collectors.maxBy;
96

10-
import java.util.Map;
117
import java.util.Optional;
128
import java.util.function.BiConsumer;
139

@@ -22,19 +18,13 @@
2218
*/
2319
public class Exercise10 {
2420
private static final WorldDao worldDao = InMemoryWorldDao.getInstance();
25-
26-
private static final BiConsumer<String,Optional<Country>> printEntry =
27-
(continent,country) -> out.println(format("%s: %s",continent,country.get()));
28-
21+
private static final BiConsumer<String,Optional<Country>> printEntry = (continent,country) -> System.out.printf("%s: %s\n",continent,country.get());
2922
public static void main(String[] args) {
3023
// Find the richest country of each continent with respect to their GNP (Gross National Product) values.
31-
final Map<String, Optional<Country>> richestCountryByContinent =
32-
worldDao.findAllCountries()
33-
.stream()
34-
.collect(
35-
groupingBy(Country::getContinent,
36-
reducing(maxBy(comparing(Country::getGnp))))
37-
);
24+
var richestCountryByContinent =
25+
worldDao.findAllCountries()
26+
.stream()
27+
.collect(groupingBy(Country::getContinent,maxBy(comparing(Country::getGnp))));
3828
richestCountryByContinent.forEach(printEntry);
3929
}
4030

‎src/com/example/exercises/Exercise11.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import static java.util.stream.Collectors.summarizingLong;
44

5-
import java.util.LongSummaryStatistics;
6-
75
import com.example.dao.InMemoryWorldDao;
86
import com.example.dao.WorldDao;
97
import com.example.domain.Country;
@@ -18,7 +16,9 @@ public class Exercise11 {
1816

1917
public static void main(String[] args) {
2018
// Find the minimum, the maximum and the average population of world countries
21-
final LongSummaryStatistics populationSummary = worldDao.findAllCountries().stream()
19+
var populationSummary =
20+
worldDao.findAllCountries()
21+
.stream()
2222
.collect(summarizingLong(Country::getPopulation));
2323
System.out.println(populationSummary);
2424
}

‎src/com/example/exercises/Exercise12.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.example.exercises;
22

3-
import static java.lang.System.out;
43
import static java.util.stream.Collectors.groupingBy;
54
import static java.util.stream.Collectors.summarizingLong;
65

76
import java.util.LongSummaryStatistics;
8-
import java.util.Map;
97
import java.util.function.BiConsumer;
108

119
import com.example.dao.InMemoryWorldDao;
@@ -20,13 +18,14 @@
2018
public class Exercise12 {
2119
private static final WorldDao worldDao = InMemoryWorldDao.getInstance();
2220

23-
private static final BiConsumer<String, LongSummaryStatistics> printEntry = (continent, statistics) -> out
24-
.println(String.format("%s: %s", continent, statistics));
21+
private static final BiConsumer<String, LongSummaryStatistics> printEntry = (continent, statistics) -> System.out.printf("%s: %s\n", continent, statistics);
2522

2623
public static void main(String[] args) {
2724
// Find the minimum, the maximum and the average population of each continent.
28-
final Map<String, LongSummaryStatistics> populationSummaryByContinent = worldDao.findAllCountries().stream()
29-
.collect(groupingBy(Country::getContinent, summarizingLong(Country::getPopulation)));
25+
var populationSummaryByContinent =
26+
worldDao.findAllCountries()
27+
.stream()
28+
.collect(groupingBy(Country::getContinent, summarizingLong(Country::getPopulation)));
3029
populationSummaryByContinent.forEach(printEntry);
3130
}
3231

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.example.exercises;
22

3-
import com.example.dao.InMemoryWorldDao;
4-
import com.example.dao.WorldDao;
5-
import com.example.domain.Country;
3+
import static java.lang.System.out;
4+
import static java.util.Comparator.comparingDouble;
65

76
import java.util.Collection;
87
import java.util.Comparator;
98
import java.util.function.Predicate;
109

11-
import static java.lang.System.out;
12-
import static java.util.Comparator.comparingDouble;
10+
import com.example.dao.InMemoryWorldDao;
11+
import com.example.dao.WorldDao;
12+
import com.example.domain.Country;
1313

1414
/**
1515
*
@@ -21,14 +21,17 @@ public class Exercise9 {
2121

2222
private static final Comparator<Country> populationDensityComparator = comparingDouble(country -> country.getPopulation() / country.getSurfaceArea());
2323
private static final Predicate<Country> livesNobody = country -> country.getPopulation() == 0L;
24-
24+
2525
public static void main(String[] args) {
26-
// Sort the countries by their population densities in descending order ignoring zero population countries
27-
Collection<Country> countries = worldDao.findAllCountries();
26+
// Sort the countries by their population densities in descending order ignoring
27+
// zero population countries
28+
var countries = worldDao.findAllCountries();
29+
var countriesSortedByPopulationDensityDescOrder =
2830
countries.stream()
2931
.filter(livesNobody.negate())
3032
.sorted(populationDensityComparator.reversed())
31-
.forEach(out::println);
33+
.toList();
34+
countriesSortedByPopulationDensityDescOrder.forEach(out::println);
3235
}
3336

3437
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /