[last-iteration] detect the last iteration (#15414)
* [last-iteration] detect the last iteration * [last-iteration] add core-java-loops module
This commit is contained in:
parent
b04c7afcf5
commit
72b6c78646
1
core-java-modules/core-java-loops/README.md
Normal file
1
core-java-modules/core-java-loops/README.md
Normal file
@ -0,0 +1 @@
|
||||
## Relevant Articles
|
16
core-java-modules/core-java-loops/pom.xml
Normal file
16
core-java-modules/core-java-loops/pom.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>core-java-loops</artifactId>
|
||||
<name>core-java-loops</name>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung.core-java-modules</groupId>
|
||||
<artifactId>core-java-modules</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
</project>
|
@ -0,0 +1,93 @@
|
||||
package com.baeldung.loops;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TheLastIterationInForEachUnitTest {
|
||||
|
||||
//@formatter:off
|
||||
private static final List<String> MOVIES = List.of(
|
||||
"Titanic",
|
||||
"The Deer Hunter",
|
||||
"Lord of the Rings",
|
||||
"One Flew Over the Cuckoo's Nest",
|
||||
"No Country For Old Men");
|
||||
//@formatter:on
|
||||
|
||||
@Test
|
||||
void whenUsingForEach_thenGetTheLastElementAfterTheLoop() {
|
||||
String myLastMovie = "";
|
||||
for (String movie : MOVIES) {
|
||||
// ... work with movie
|
||||
myLastMovie = movie;
|
||||
}
|
||||
assertEquals("No Country For Old Men", myLastMovie);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenLoopingWithIndexes_thenGetExpectedResult() {
|
||||
int size = MOVIES.size();
|
||||
String myLastMovie = null;
|
||||
for (int i = 0; i < size; i++) {
|
||||
String movie = MOVIES.get(i);
|
||||
// ... work with movie
|
||||
if (i == size - 1) {
|
||||
myLastMovie = movie;
|
||||
}
|
||||
}
|
||||
assertEquals("No Country For Old Men", myLastMovie);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingIntStream_thenGetExpectedResult() {
|
||||
int size = MOVIES.size();
|
||||
final Map<Integer, String> myLastMovie = new HashMap<>();
|
||||
IntStream.range(0, size)
|
||||
.forEach(idx -> {
|
||||
String movie = MOVIES.get(idx);
|
||||
// ... work with movie
|
||||
if (idx == size - 1) {
|
||||
myLastMovie.put(idx, movie);
|
||||
}
|
||||
});
|
||||
assertEquals(1, myLastMovie.size());
|
||||
assertTrue(myLastMovie.containsKey(size - 1));
|
||||
assertTrue(myLastMovie.containsValue("No Country For Old Men"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingCounter_thenGetExpectedResult() {
|
||||
int size = MOVIES.size();
|
||||
String myLastMovie = null;
|
||||
int cnt = 0;
|
||||
for (String movie : MOVIES) {
|
||||
// ... work with movie
|
||||
if (++cnt == size) {
|
||||
myLastMovie = movie;
|
||||
}
|
||||
}
|
||||
assertEquals("No Country For Old Men", myLastMovie);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingIterator_thenGetExpectedResult() {
|
||||
String movie;
|
||||
String myLastMovie = null;
|
||||
for (Iterator<String> it = MOVIES.iterator(); it.hasNext(); ) {
|
||||
movie = it.next();
|
||||
// ... work with movie
|
||||
if (!it.hasNext()) { // the last element
|
||||
myLastMovie = movie;
|
||||
}
|
||||
}
|
||||
assertEquals("No Country For Old Men", myLastMovie);
|
||||
}
|
||||
}
|
@ -155,6 +155,7 @@
|
||||
<module>core-java-lang-syntax</module>
|
||||
<module>core-java-lang-syntax-2</module>
|
||||
<module>core-java-locale</module>
|
||||
<module>core-java-loops</module>
|
||||
<module>core-java-networking</module>
|
||||
<module>core-java-networking-2</module>
|
||||
<module>core-java-networking-4</module>
|
||||
|
Loading…
x
Reference in New Issue
Block a user