Skip to content

Commit 3990032

Browse files
authored
Merge branch 'master' into master
2 parents eaf1d3e + 9df9056 commit 3990032

1,331 files changed

Lines changed: 72510 additions & 4981 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

akka-streams/pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,19 @@
1414
<dependencies>
1515
<dependency>
1616
<groupId>com.typesafe.akka</groupId>
17-
<artifactId>akka-stream_2.11</artifactId>
17+
<artifactId>akka-stream_${scala.version}</artifactId>
1818
<version>${akkastreams.version}</version>
1919
</dependency>
2020
<dependency>
2121
<groupId>com.typesafe.akka</groupId>
22-
<artifactId>akka-stream-testkit_2.11</artifactId>
22+
<artifactId>akka-stream-testkit_${scala.version}</artifactId>
2323
<version>${akkastreams.version}</version>
2424
</dependency>
2525
</dependencies>
2626

2727
<properties>
2828
<akkastreams.version>2.5.2</akkastreams.version>
29+
<scala.version>2.11</scala.version>
2930
</properties>
3031

3132
</project>

algorithms-miscellaneous-1/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@
1717
- [Java Two Pointer Technique](https://www.baeldung.com/java-two-pointer-technique)
1818
- [Permutations of an Array in Java](https://www.baeldung.com/java-array-permutations)
1919
- [Implementing Simple State Machines with Java Enums](https://www.baeldung.com/java-enum-simple-state-machine)
20+
- [Generate Combinations in Java](https://www.baeldung.com/java-combinations-algorithm)

algorithms-miscellaneous-1/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@
3939
<version>${org.assertj.core.version}</version>
4040
<scope>test</scope>
4141
</dependency>
42+
<dependency>
43+
<groupId>com.github.dpaukov</groupId>
44+
<artifactId>combinatoricslib3</artifactId>
45+
<version>3.3.0</version>
46+
</dependency>
4247
</dependencies>
4348

4449
<build>
@@ -77,7 +82,7 @@
7782
<commons-math3.version>3.6.1</commons-math3.version>
7883
<org.assertj.core.version>3.9.0</org.assertj.core.version>
7984
<commons-codec.version>1.11</commons-codec.version>
80-
<guava.version>25.1-jre</guava.version>
85+
<guava.version>27.0.1-jre</guava.version>
8186
</properties>
8287

8388
</project>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.baeldung.algorithms.relativelyprime;
2+
3+
import java.math.BigInteger;
4+
5+
class RelativelyPrime {
6+
7+
static boolean iterativeRelativelyPrime(int a, int b) {
8+
return iterativeGCD(a, b) == 1;
9+
}
10+
11+
static boolean recursiveRelativelyPrime(int a, int b) {
12+
return recursiveGCD(a, b) == 1;
13+
}
14+
15+
static boolean bigIntegerRelativelyPrime(int a, int b) {
16+
return BigInteger.valueOf(a).gcd(BigInteger.valueOf(b)).equals(BigInteger.ONE);
17+
}
18+
19+
private static int iterativeGCD(int a, int b) {
20+
int tmp;
21+
while (b != 0) {
22+
if (a < b) {
23+
tmp = a;
24+
a = b;
25+
b = tmp;
26+
}
27+
tmp = b;
28+
b = a % b;
29+
a = tmp;
30+
}
31+
return a;
32+
}
33+
34+
private static int recursiveGCD(int a, int b) {
35+
if (b == 0) {
36+
return a;
37+
}
38+
if (a < b) {
39+
return recursiveGCD(b, a);
40+
}
41+
return recursiveGCD(b, a % b);
42+
}
43+
44+
45+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.baeldung.algorithms.reversingtree;
2+
3+
public class TreeNode {
4+
5+
private int value;
6+
private TreeNode rightChild;
7+
private TreeNode leftChild;
8+
9+
public int getValue() {
10+
return value;
11+
}
12+
13+
public void setValue(int value) {
14+
this.value = value;
15+
}
16+
17+
public TreeNode getRightChild() {
18+
return rightChild;
19+
}
20+
21+
public void setRightChild(TreeNode rightChild) {
22+
this.rightChild = rightChild;
23+
}
24+
25+
public TreeNode getLeftChild() {
26+
return leftChild;
27+
}
28+
29+
public void setLeftChild(TreeNode leftChild) {
30+
this.leftChild = leftChild;
31+
}
32+
33+
public TreeNode(int value, TreeNode leftChild, TreeNode rightChild) {
34+
this.value = value;
35+
this.rightChild = rightChild;
36+
this.leftChild = leftChild;
37+
}
38+
39+
public TreeNode(int value) {
40+
this.value = value;
41+
}
42+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.baeldung.algorithms.reversingtree;
2+
3+
import java.util.LinkedList;
4+
5+
public class TreeReverser {
6+
7+
public void reverseRecursive(TreeNode treeNode) {
8+
if (treeNode == null) {
9+
return;
10+
}
11+
12+
TreeNode temp = treeNode.getLeftChild();
13+
treeNode.setLeftChild(treeNode.getRightChild());
14+
treeNode.setRightChild(temp);
15+
16+
reverseRecursive(treeNode.getLeftChild());
17+
reverseRecursive(treeNode.getRightChild());
18+
}
19+
20+
public void reverseIterative(TreeNode treeNode) {
21+
LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
22+
23+
if (treeNode != null) {
24+
queue.add(treeNode);
25+
}
26+
27+
while (!queue.isEmpty()) {
28+
29+
TreeNode node = queue.poll();
30+
if (node.getLeftChild() != null)
31+
queue.add(node.getLeftChild());
32+
if (node.getRightChild() != null)
33+
queue.add(node.getRightChild());
34+
35+
TreeNode temp = node.getLeftChild();
36+
node.setLeftChild(node.getRightChild());
37+
node.setRightChild(temp);
38+
}
39+
}
40+
41+
public String toString(TreeNode root) {
42+
if (root == null) {
43+
return "";
44+
}
45+
46+
StringBuffer buffer = new StringBuffer(String.valueOf(root.getValue())).append(" ");
47+
48+
buffer.append(toString(root.getLeftChild()));
49+
buffer.append(toString(root.getRightChild()));
50+
51+
return buffer.toString();
52+
}
53+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.baeldung.algorithms.relativelyprime;
2+
3+
import org.junit.Test;
4+
5+
import static com.baeldung.algorithms.relativelyprime.RelativelyPrime.*;
6+
import static org.assertj.core.api.Assertions.assertThat;
7+
8+
public class RelativelyPrimeUnitTest {
9+
10+
@Test
11+
public void givenNonRelativelyPrimeNumbers_whenCheckingIteratively_shouldReturnFalse() {
12+
13+
boolean result = iterativeRelativelyPrime(45, 35);
14+
assertThat(result).isFalse();
15+
}
16+
17+
@Test
18+
public void givenRelativelyPrimeNumbers_whenCheckingIteratively_shouldReturnTrue() {
19+
20+
boolean result = iterativeRelativelyPrime(500, 501);
21+
assertThat(result).isTrue();
22+
}
23+
24+
@Test
25+
public void givenNonRelativelyPrimeNumbers_whenCheckingRecursively_shouldReturnFalse() {
26+
27+
boolean result = recursiveRelativelyPrime(45, 35);
28+
assertThat(result).isFalse();
29+
}
30+
31+
@Test
32+
public void givenRelativelyPrimeNumbers_whenCheckingRecursively_shouldReturnTrue() {
33+
34+
boolean result = recursiveRelativelyPrime(500, 501);
35+
assertThat(result).isTrue();
36+
}
37+
38+
@Test
39+
public void givenNonRelativelyPrimeNumbers_whenCheckingUsingBigIntegers_shouldReturnFalse() {
40+
41+
boolean result = bigIntegerRelativelyPrime(45, 35);
42+
assertThat(result).isFalse();
43+
}
44+
45+
@Test
46+
public void givenRelativelyPrimeNumbers_whenCheckingBigIntegers_shouldReturnTrue() {
47+
48+
boolean result = bigIntegerRelativelyPrime(500, 501);
49+
assertThat(result).isTrue();
50+
}
51+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.baeldung.algorithms.reversingtree;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
public class TreeReverserUnitTest {
8+
9+
@Test
10+
public void givenTreeWhenReversingRecursivelyThenReversed() {
11+
TreeReverser reverser = new TreeReverser();
12+
13+
TreeNode treeNode = createBinaryTree();
14+
15+
reverser.reverseRecursive(treeNode);
16+
17+
assertEquals("4 7 9 6 2 3 1", reverser.toString(treeNode)
18+
.trim());
19+
}
20+
21+
@Test
22+
public void givenTreeWhenReversingIterativelyThenReversed() {
23+
TreeReverser reverser = new TreeReverser();
24+
25+
TreeNode treeNode = createBinaryTree();
26+
27+
reverser.reverseIterative(treeNode);
28+
29+
assertEquals("4 7 9 6 2 3 1", reverser.toString(treeNode)
30+
.trim());
31+
}
32+
33+
private TreeNode createBinaryTree() {
34+
35+
TreeNode leaf1 = new TreeNode(1);
36+
TreeNode leaf2 = new TreeNode(3);
37+
TreeNode leaf3 = new TreeNode(6);
38+
TreeNode leaf4 = new TreeNode(9);
39+
40+
TreeNode nodeRight = new TreeNode(7, leaf3, leaf4);
41+
TreeNode nodeLeft = new TreeNode(2, leaf1, leaf2);
42+
43+
TreeNode root = new TreeNode(4, nodeLeft, nodeRight);
44+
45+
return root;
46+
}
47+
}

antlr/pom.xml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@
1010
<version>1.0.0-SNAPSHOT</version>
1111
</parent>
1212

13+
<dependencies>
14+
<dependency>
15+
<groupId>org.antlr</groupId>
16+
<artifactId>antlr4-runtime</artifactId>
17+
<version>${antlr.version}</version>
18+
</dependency>
19+
</dependencies>
20+
1321
<build>
1422
<plugins>
1523
<plugin>
@@ -44,13 +52,7 @@
4452
</plugin>
4553
</plugins>
4654
</build>
47-
<dependencies>
48-
<dependency>
49-
<groupId>org.antlr</groupId>
50-
<artifactId>antlr4-runtime</artifactId>
51-
<version>${antlr.version}</version>
52-
</dependency>
53-
</dependencies>
55+
5456
<properties>
5557
<antlr.version>4.7.1</antlr.version>
5658
<mojo.version>3.0.0</mojo.version>

apache-cxf/sse-jaxrs/sse-jaxrs-client/pom.xml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@
1212
<version>0.0.1-SNAPSHOT</version>
1313
</parent>
1414

15-
<properties>
16-
<cxf-version>3.2.0</cxf-version>
17-
</properties>
15+
<dependencies>
16+
<dependency>
17+
<groupId>org.apache.cxf</groupId>
18+
<artifactId>cxf-rt-rs-client</artifactId>
19+
<version>${cxf-version}</version>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.apache.cxf</groupId>
23+
<artifactId>cxf-rt-rs-sse</artifactId>
24+
<version>${cxf-version}</version>
25+
</dependency>
26+
</dependencies>
1827

1928
<build>
2029
<plugins>
@@ -45,17 +54,8 @@
4554
</plugins>
4655
</build>
4756

48-
<dependencies>
49-
<dependency>
50-
<groupId>org.apache.cxf</groupId>
51-
<artifactId>cxf-rt-rs-client</artifactId>
52-
<version>${cxf-version}</version>
53-
</dependency>
54-
<dependency>
55-
<groupId>org.apache.cxf</groupId>
56-
<artifactId>cxf-rt-rs-sse</artifactId>
57-
<version>${cxf-version}</version>
58-
</dependency>
59-
</dependencies>
57+
<properties>
58+
<cxf-version>3.2.0</cxf-version>
59+
</properties>
6060

6161
</project>

0 commit comments

Comments
 (0)