Skip to content

Commit fe518fb

Browse files
Neetika23Neetika Khandelwal
andauthored
Bael 8760 (#18642)
* BAEL-8760 * BAEL-8760 * BAEL-8760 * BAEL-8760 * BAEL-8760 --------- Co-authored-by: Neetika Khandelwal <[email protected]>
1 parent eee6e08 commit fe518fb

File tree

4 files changed

+150
-0
lines changed

4 files changed

+150
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<artifactId>core-java-collections-list-8</artifactId>
7+
<packaging>jar</packaging>
8+
<name>core-java-collections-list-8</name>
9+
10+
<parent>
11+
<groupId>com.baeldung.core-java-modules</groupId>
12+
<artifactId>core-java-modules</artifactId>
13+
<version>0.0.1-SNAPSHOT</version>
14+
</parent>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.apache.commons</groupId>
19+
<artifactId>commons-lang3</artifactId>
20+
<version>${commons-lang3.version}</version>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.apache.commons</groupId>
24+
<artifactId>commons-collections4</artifactId>
25+
<version>${commons-collections4.version}</version>
26+
</dependency>
27+
</dependencies>
28+
29+
<properties>
30+
<commons-lang3.version>3.17.0</commons-lang3.version>
31+
</properties>
32+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.baeldung.linkedlistarray;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.LinkedList;
6+
import java.util.stream.IntStream;
7+
8+
public class LinkedListArray {
9+
10+
public static void allocateNumbers(int[] numbers, ArrayList<LinkedList<Integer>> groups) {
11+
for (int num : numbers) {
12+
int index = (num < 10) ? 0 : (num < 20 ? 1 : 2);
13+
groups.get(index)
14+
.add(num);
15+
}
16+
}
17+
18+
public static void allocateNumbers(int[] numbers, LinkedList<Integer>[] groups) {
19+
for (int num : numbers) {
20+
int index = (num < 10) ? 0 : (num < 20 ? 1 : 2);
21+
groups[index].add(num);
22+
}
23+
}
24+
25+
public static LinkedList<Integer>[] createUsingRawArray() {
26+
@SuppressWarnings("unchecked") LinkedList<Integer>[] groups = new LinkedList[3];
27+
for (int i = 0; i < groups.length; i++) {
28+
groups[i] = new LinkedList<>();
29+
}
30+
return groups;
31+
}
32+
33+
public static ArrayList<LinkedList<Integer>> createUsingArrayList() {
34+
ArrayList<LinkedList<Integer>> groups = new ArrayList<>();
35+
for (int i = 0; i < 3; i++) {
36+
groups.add(new LinkedList<>());
37+
}
38+
return groups;
39+
}
40+
41+
public static ArrayList<LinkedList<Integer>> createUsingStreams() {
42+
ArrayList<LinkedList<Integer>> groups = new ArrayList<>();
43+
IntStream.range(0, 3)
44+
.forEach(i -> groups.add(new LinkedList<>()));
45+
return groups;
46+
}
47+
48+
public static LinkedList<Integer>[] createUsingSetAll() {
49+
@SuppressWarnings("unchecked") LinkedList<Integer>[] groups = new LinkedList[3];
50+
Arrays.setAll(groups, i -> new LinkedList<>());
51+
return groups;
52+
}
53+
}
54+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package baeldung.linkedlistarray;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
5+
6+
import java.util.ArrayList;
7+
import java.util.LinkedList;
8+
import java.util.List;
9+
10+
import org.junit.jupiter.api.Test;
11+
12+
import com.baeldung.linkedlistarray.LinkedListArray;
13+
14+
public class LinkedListArrayUnitTest {
15+
16+
int[] input = { 3, 7, 12, 15, 20, 25 };
17+
18+
@Test
19+
void givenNumbers_whenGroupedUsingRawArray_thenGroupsAreCorrect() {
20+
LinkedList<Integer>[] arrayOfLists = LinkedListArray.createUsingRawArray();
21+
LinkedListArray.allocateNumbers(input, arrayOfLists);
22+
23+
assertEquals(2, arrayOfLists[0].size());
24+
assertTrue(arrayOfLists[0].contains(3));
25+
assertTrue(arrayOfLists[0].contains(7));
26+
}
27+
28+
@Test
29+
void givenNumbers_whenGroupedUsingLinkedList_thenGroupsAreCorrect() {
30+
ArrayList<LinkedList<Integer>> arrayOfLists = LinkedListArray.createUsingArrayList();
31+
LinkedListArray.allocateNumbers(input, arrayOfLists);
32+
33+
assertEquals(2, arrayOfLists.get(1)
34+
.size());
35+
assertTrue(arrayOfLists.get(1)
36+
.contains(12));
37+
assertTrue(arrayOfLists.get(1)
38+
.contains(15));
39+
}
40+
41+
@Test
42+
void givenNumbers_whenGroupedUsingStreams_thenGroupsAreCorrect() {
43+
ArrayList<LinkedList<Integer>> arrayOfLists = LinkedListArray.createUsingStreams();
44+
LinkedListArray.allocateNumbers(input, arrayOfLists);
45+
46+
assertEquals(2, arrayOfLists.get(0)
47+
.size());
48+
assertTrue(arrayOfLists.get(0)
49+
.contains(3));
50+
assertTrue(arrayOfLists.get(0)
51+
.contains(7));
52+
}
53+
54+
@Test
55+
void givenNumbers_whenGroupedUsingSetAll_thenGroupsAreCorrect() {
56+
LinkedList<Integer>[] arrayOfLists = LinkedListArray.createUsingSetAll();
57+
LinkedListArray.allocateNumbers(input, arrayOfLists);
58+
59+
assertEquals(2, arrayOfLists[2].size());
60+
assertTrue(arrayOfLists[2].contains(20));
61+
assertTrue(arrayOfLists[2].contains(25));
62+
}
63+
}

core-java-modules/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@
280280
<module>java-websocket</module>
281281
<module>core-java-8-datetime-3</module>
282282
<module>core-java-8-datetime-4</module>
283+
<module>core-java-collections-list-8</module>
283284
<!--<module>core-java-22</module>--> <!-- Migrated to default-jdk22 profile -->
284285
<!--<module>core-java-23</module>--> <!-- Migrated to default-jdk23 profile -->
285286
<!--<module>core-java-24</module>--> <!-- Migrated to default-jdk24 profile -->

0 commit comments

Comments
 (0)