Skip to content

Commit e4dc7f5

Browse files
committed
changes
1 parent 46a4378 commit e4dc7f5

4 files changed

Lines changed: 65 additions & 88 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.baeldung.collections.mapfirstpair;
2+
3+
import java.util.Iterator;
4+
import java.util.Map;
5+
import java.util.Set;
6+
7+
public class MapFirstPairExample {
8+
9+
public Map.Entry<Integer, String> getFirstPairUsingIterator(Map<Integer, String> map) {
10+
if (map == null || map.size() == 0)
11+
return null;
12+
13+
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet()
14+
.iterator();
15+
16+
if (iterator.hasNext())
17+
return iterator.next();
18+
19+
return null;
20+
}
21+
22+
public Map.Entry<Integer, String> getFirstPairUsingStream(Map<Integer, String> map) {
23+
if (map == null || map.size() == 0)
24+
return null;
25+
26+
Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
27+
28+
return entrySet.stream()
29+
.findFirst()
30+
.get();
31+
}
32+
33+
public Map<Integer, String> populateMapValues(Map<Integer, String> map) {
34+
if (map != null) {
35+
map.put(5, "A");
36+
map.put(1, "B");
37+
map.put(2, "C");
38+
}
39+
return map;
40+
}
41+
42+
}

core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/mapfirstpair/MapFirstPairService.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

core-java-modules/core-java-collections-3/src/main/java/com/baeldung/collections/mapfirstpair/MapFirstPairServiceImpl.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/mapfirstpair/MapFirstPairServiceUnitTest.java renamed to core-java-modules/core-java-collections-3/src/test/java/com/baeldung/collections/mapfirstpair/MapFirstPairUnitTest.java

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,22 @@
1111
import org.junit.Before;
1212
import org.junit.Test;
1313

14-
public class MapFirstPairServiceUnitTest {
14+
public class MapFirstPairUnitTest {
1515

16-
private MapFirstPairService mapFirstPairService;
16+
private MapFirstPairExample mapFirstPairExample;
1717

1818
@Before
1919
public void Setup() {
2020

21-
mapFirstPairService = new MapFirstPairServiceImpl();
22-
}
23-
24-
private void populateMapValues(Map<Integer, String> map) {
25-
if (map != null) {
26-
map.put(5, "A");
27-
map.put(1, "B");
28-
map.put(2, "C");
29-
}
21+
mapFirstPairExample = new MapFirstPairExample();
3022
}
3123

3224
@Test
33-
public void whenUsingIteratorForHashMap() {
25+
public void whenUsingIteratorForHashMap_thenFirstPairWhichWasNotInsertedFirst() {
3426
Map<Integer, String> hashMap = new HashMap<>();
35-
populateMapValues(hashMap);
27+
hashMap = mapFirstPairExample.populateMapValues(hashMap);
3628

37-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingIterator(hashMap);
29+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingIterator(hashMap);
3830
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(1, "B");
3931
Map.Entry<Integer, String> pairInsertedFirst = new AbstractMap.SimpleEntry<Integer, String>(5, "A");
4032

@@ -43,10 +35,10 @@ public void whenUsingIteratorForHashMap() {
4335
}
4436

4537
@Test
46-
public void whenUsingStreamForHashMap() {
38+
public void whenUsingStreamForHashMap_thenFirstPairWhichWasNotInsertedFirst() {
4739
Map<Integer, String> hashMap = new HashMap<>();
48-
populateMapValues(hashMap);
49-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingStream(hashMap);
40+
hashMap = mapFirstPairExample.populateMapValues(hashMap);
41+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingStream(hashMap);
5042
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(1, "B");
5143
Map.Entry<Integer, String> pairInsertedFirst = new AbstractMap.SimpleEntry<Integer, String>(5, "A");
5244

@@ -55,21 +47,21 @@ public void whenUsingStreamForHashMap() {
5547
}
5648

5749
@Test
58-
public void whenUsingIteratorForLinkedHashMap() {
50+
public void whenUsingIteratorForLinkedHashMap_thenFirstPairWhichWasInsertedFirst() {
5951
Map<Integer, String> linkedHashMap = new LinkedHashMap<>();
60-
populateMapValues(linkedHashMap);
61-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingIterator(linkedHashMap);
52+
linkedHashMap = mapFirstPairExample.populateMapValues(linkedHashMap);
53+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingIterator(linkedHashMap);
6254
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(5, "A");
6355

6456
assertEquals(expectedValue, actualValue);
6557
}
6658

6759
@Test
68-
public void whenUsingStreamForLinkedHashMap() {
60+
public void whenUsingStreamForLinkedHashMap_thenFirstPairWhichWasInsertedFirst() {
6961
Map<Integer, String> linkedHashMap = new LinkedHashMap<>();
70-
populateMapValues(linkedHashMap);
62+
linkedHashMap = mapFirstPairExample.populateMapValues(linkedHashMap);
7163

72-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingStream(linkedHashMap);
64+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingStream(linkedHashMap);
7365
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(5, "A");
7466

7567
assertEquals(expectedValue, actualValue);
@@ -78,10 +70,10 @@ public void whenUsingStreamForLinkedHashMap() {
7870
@Test
7971
public void whenAddedAnElementInHashMap_thenFirstPairChangedUsingIterator() {
8072
Map<Integer, String> hashMap = new HashMap<>();
81-
populateMapValues(hashMap);
73+
hashMap = mapFirstPairExample.populateMapValues(hashMap);
8274

8375
hashMap.put(0, "D");
84-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingIterator(hashMap);
76+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingIterator(hashMap);
8577
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(0, "D");
8678

8779
assertEquals(expectedValue, actualValue);
@@ -90,10 +82,10 @@ public void whenAddedAnElementInHashMap_thenFirstPairChangedUsingIterator() {
9082
@Test
9183
public void whenAddedAnElementInHashMap_thenFirstPairChangedUsingStream() {
9284
Map<Integer, String> hashMap = new HashMap<>();
93-
populateMapValues(hashMap);
85+
hashMap = mapFirstPairExample.populateMapValues(hashMap);
9486

9587
hashMap.put(0, "D");
96-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingStream(hashMap);
88+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingStream(hashMap);
9789
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(0, "D");
9890

9991
assertEquals(expectedValue, actualValue);
@@ -102,10 +94,10 @@ public void whenAddedAnElementInHashMap_thenFirstPairChangedUsingStream() {
10294
@Test
10395
public void whenAddedAnElementInLinkedHashMap_thenFirstPairRemainUnchangedUsingIterator() {
10496
Map<Integer, String> linkedHashMap = new LinkedHashMap<>();
105-
populateMapValues(linkedHashMap);
97+
linkedHashMap = mapFirstPairExample.populateMapValues(linkedHashMap);
10698

10799
linkedHashMap.put(0, "D");
108-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingIterator(linkedHashMap);
100+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingIterator(linkedHashMap);
109101
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(5, "A");
110102

111103
assertEquals(expectedValue, actualValue);
@@ -114,10 +106,10 @@ public void whenAddedAnElementInLinkedHashMap_thenFirstPairRemainUnchangedUsingI
114106
@Test
115107
public void whenAddedAnElementInLinkedHashMap_thenFirstPairRemainUnchangedUsingStream() {
116108
Map<Integer, String> linkedHashMap = new LinkedHashMap<>();
117-
populateMapValues(linkedHashMap);
109+
linkedHashMap = mapFirstPairExample.populateMapValues(linkedHashMap);
118110

119111
linkedHashMap.put(0, "D");
120-
Map.Entry<Integer, String> actualValue = mapFirstPairService.getFirstPairUsingStream(linkedHashMap);
112+
Map.Entry<Integer, String> actualValue = mapFirstPairExample.getFirstPairUsingStream(linkedHashMap);
121113
Map.Entry<Integer, String> expectedValue = new AbstractMap.SimpleEntry<Integer, String>(5, "A");
122114

123115
assertEquals(expectedValue, actualValue);

0 commit comments

Comments
 (0)