Merge pull request #13 from eugenp/master

update master
This commit is contained in:
Maiklins
2019-12-18 09:07:13 +01:00
committed by GitHub
849 changed files with 2305 additions and 1440 deletions
+1
View File
@@ -1,3 +1,4 @@
**UPDATE**: The price of "Learn Spring Security OAuth" will permanently change on the 11th of December, along with the upcoming OAuth2 material: http://bit.ly/github-lss
The Courses
==============================
@@ -0,0 +1,33 @@
package com.baeldung.algorithms.mergesortedarrays;
public class SortedArrays {
public static int[] merge(int[] foo, int[] bar) {
int fooLength = foo.length;
int barLength = bar.length;
int[] merged = new int[fooLength + barLength];
int fooPosition, barPosition, mergedPosition;
fooPosition = barPosition = mergedPosition = 0;
while (fooPosition < fooLength && barPosition < barLength) {
if (foo[fooPosition] < bar[barPosition]) {
merged[mergedPosition++] = foo[fooPosition++];
} else {
merged[mergedPosition++] = bar[barPosition++];
}
}
while (fooPosition < fooLength) {
merged[mergedPosition++] = foo[fooPosition++];
}
while (barPosition < barLength) {
merged[mergedPosition++] = bar[barPosition++];
}
return merged;
}
}
@@ -0,0 +1,29 @@
package com.baeldung.algorithms.mergesortedarrays;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import org.junit.jupiter.api.Test;
import com.baeldung.algorithms.mergesortedarrays.SortedArrays;
public class SortedArraysUnitTest {
@Test
public void givenTwoSortedArrays_whenMerged_thenReturnMergedSortedArray() {
int[] foo = { 3, 7 };
int[] bar = { 4, 8, 11 };
int[] merged = { 3, 4, 7, 8, 11 };
assertArrayEquals(merged, SortedArrays.merge(foo, bar));
}
@Test
public void givenTwoSortedArraysWithDuplicates_whenMerged_thenReturnMergedSortedArray() {
int[] foo = { 3, 3, 7 };
int[] bar = { 4, 8, 8, 11 };
int[] merged = { 3, 3, 4, 7, 8, 8, 11 };
assertArrayEquals(merged, SortedArrays.merge(foo, bar));
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
## AWS
This module contains articles about AWS
This module contains articles about Amazon Web Services (AWS)
### Relevant articles
@@ -1,5 +1,3 @@
=========
## Core Java Concurrency Advanced Examples
This module contains articles about advanced topics about multithreading with core Java.
@@ -1,6 +1,6 @@
=========
## Core Java Concurrency Basic
## Core Java Concurrency Basic 2 Examples
This module contains articles about basic Java concurrency
### Relevant Articles:
- [How to Delay Code Execution in Java](https://www.baeldung.com/java-delay-code-execution)
@@ -8,3 +8,4 @@
- [Difference Between Wait and Sleep in Java](https://www.baeldung.com/java-wait-and-sleep)
- [Guide to the Synchronized Keyword in Java](https://www.baeldung.com/java-synchronized)
- [Life Cycle of a Thread in Java](https://www.baeldung.com/java-thread-lifecycle)
- [[<-- Prev]](/core-java-modules/core-java-concurrency-basic)
@@ -17,3 +17,4 @@ This module contains articles about core java exceptions
- [Common Java Exceptions](https://www.baeldung.com/java-common-exceptions)
- [How to Find an Exception’s Root Cause in Java](https://www.baeldung.com/java-exception-root-cause)
- [Is It a Bad Practice to Catch Throwable?](https://www.baeldung.com/java-catch-throwable-bad-practice)
- [[Next -->]](/core-java-modules/core-java-exceptions-2)
@@ -156,10 +156,16 @@ public class FileClassUnitTest {
private static File makeDir(String name) {
File directory = new File(name);
directory.mkdir();
if (directory.isDirectory()) {
// If the directory already exists, make sure we create it 'from scratch', i.e. all the files inside are deleted first
if (directory.exists()) {
removeDir(directory);
}
if (directory.mkdir()) {
return directory;
}
throw new RuntimeException("'" + name + "' not made!");
}
@@ -0,0 +1,22 @@
package com.baeldung.overflow;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class OverflowUnitTest {
@Test
public void positive_and_negative_zero_are_not_always_equal() {
double a = +0f;
double b = -0f;
assertTrue(a == b);
assertTrue(1/a == Double.POSITIVE_INFINITY);
assertTrue(1/b == Double.NEGATIVE_INFINITY);
assertTrue(1/a != 1/b);
}
}
@@ -0,0 +1,37 @@
package com.baeldung.printbinarytree;
public class BinaryTreeModel {
private Object value;
private BinaryTreeModel left;
private BinaryTreeModel right;
public BinaryTreeModel(Object value) {
this.value = value;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public BinaryTreeModel getLeft() {
return left;
}
public void setLeft(BinaryTreeModel left) {
this.left = left;
}
public BinaryTreeModel getRight() {
return right;
}
public void setRight(BinaryTreeModel right) {
this.right = right;
}
}
@@ -0,0 +1,63 @@
package com.baeldung.printbinarytree;
import java.io.PrintStream;
public class BinaryTreePrinter {
private BinaryTreeModel tree;
public BinaryTreePrinter(BinaryTreeModel tree) {
this.tree = tree;
}
private String traversePreOrder(BinaryTreeModel root) {
if (root == null) {
return "";
}
StringBuilder sb = new StringBuilder();
sb.append(root.getValue());
String pointerRight = "└──";
String pointerLeft = (root.getRight() != null) ? "├──" : "└──";
traverseNodes(sb, "", pointerLeft, root.getLeft(), root.getRight() != null);
traverseNodes(sb, "", pointerRight, root.getRight(), false);
return sb.toString();
}
private void traverseNodes(StringBuilder sb, String padding, String pointer, BinaryTreeModel node,
boolean hasRightSibling) {
if (node != null) {
sb.append("\n");
sb.append(padding);
sb.append(pointer);
sb.append(node.getValue());
StringBuilder paddingBuilder = new StringBuilder(padding);
if (hasRightSibling) {
paddingBuilder.append("│ ");
} else {
paddingBuilder.append(" ");
}
String paddingForBoth = paddingBuilder.toString();
String pointerRight = "└──";
String pointerLeft = (node.getRight() != null) ? "├──" : "└──";
traverseNodes(sb, paddingForBoth, pointerLeft, node.getLeft(), node.getRight() != null);
traverseNodes(sb, paddingForBoth, pointerRight, node.getRight(), false);
}
}
public void print(PrintStream os) {
os.print(traversePreOrder(tree));
}
}
@@ -0,0 +1,178 @@
package com.baeldung.printbinarytree;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.baeldung.printbinarytree.BinaryTreeModel;
import com.baeldung.printbinarytree.BinaryTreePrinter;
public class PrintingBinaryTreeModelUnitTest {
private BinaryTreeModel balanced;
private BinaryTreeModel leftSkewed;
private BinaryTreeModel rightSkewed;
private OutputStream output;
@Before
public void setup() {
balanced = createBalancedTree();
leftSkewed = createLeftUnbalancedTree();
rightSkewed = createRightUnbalancedTree();
output = new ByteArrayOutputStream();
System.setOut(new PrintStream(output));
}
@After
public void tearDown() {
System.setOut(System.out);
}
private BinaryTreeModel createBalancedTree() {
BinaryTreeModel root = new BinaryTreeModel("root");
BinaryTreeModel node1 = new BinaryTreeModel("node1");
BinaryTreeModel node2 = new BinaryTreeModel("node2");
root.setLeft(node1);
root.setRight(node2);
BinaryTreeModel node3 = new BinaryTreeModel("node3");
BinaryTreeModel node4 = new BinaryTreeModel("node4");
node1.setLeft(node3);
node1.setRight(node4);
node2.setLeft(new BinaryTreeModel("node5"));
node2.setRight(new BinaryTreeModel("node6"));
BinaryTreeModel node7 = new BinaryTreeModel("node7");
node3.setLeft(node7);
node7.setLeft(new BinaryTreeModel("node8"));
node7.setRight(new BinaryTreeModel("node9"));
return root;
}
private BinaryTreeModel createLeftUnbalancedTree() {
BinaryTreeModel root = new BinaryTreeModel("root");
BinaryTreeModel node1 = new BinaryTreeModel("node1");
root.setLeft(node1);
root.setRight(new BinaryTreeModel("node2"));
BinaryTreeModel node3 = new BinaryTreeModel("node3");
node1.setLeft(node3);
BinaryTreeModel node4 = new BinaryTreeModel("node4");
node3.setLeft(node4);
BinaryTreeModel node5 = new BinaryTreeModel("node5");
node4.setLeft(node5);
BinaryTreeModel node6 = new BinaryTreeModel("node6");
node5.setLeft(node6);
BinaryTreeModel node7 = new BinaryTreeModel("node7");
node6.setLeft(node7);
node7.setLeft(new BinaryTreeModel("node8"));
return root;
}
private BinaryTreeModel createRightUnbalancedTree() {
BinaryTreeModel root = new BinaryTreeModel("root");
BinaryTreeModel node2 = new BinaryTreeModel("node2");
root.setLeft(new BinaryTreeModel("node1"));
root.setRight(node2);
BinaryTreeModel node3 = new BinaryTreeModel("node3");
node2.setRight(node3);
BinaryTreeModel node4 = new BinaryTreeModel("node4");
node3.setRight(node4);
BinaryTreeModel node5 = new BinaryTreeModel("node5");
node4.setRight(node5);
BinaryTreeModel node6 = new BinaryTreeModel("node6");
node5.setRight(node6);
BinaryTreeModel node7 = new BinaryTreeModel("node7");
node6.setRight(node7);
node7.setRight(new BinaryTreeModel("node8"));
return root;
}
@Test
public void givenBinaryTreeModelBalanced_whenPrintWithBinaryTreePrinter_thenProduceCorrectOutput() {
StringBuilder expected = new StringBuilder();
expected.append("root").append("\n");
expected.append("├──node1").append("\n");
expected.append("│ ├──node3").append("\n");
expected.append("│ │ └──node7").append("\n");
expected.append("│ │ ├──node8").append("\n");
expected.append("│ │ └──node9").append("\n");
expected.append("│ └──node4").append("\n");
expected.append("└──node2").append("\n");
expected.append(" ├──node5").append("\n");
expected.append(" └──node6");
new BinaryTreePrinter(balanced).print(System.out);
assertEquals(expected.toString(), output.toString());
}
@Test
public void givenBinaryTreeModelLeftUnbalanced_whenPrintWithBinaryTreePrinter_thenProduceCorrectOutput() {
StringBuilder expected = new StringBuilder();
expected.append("root").append("\n");
expected.append("├──node1").append("\n");
expected.append("│ └──node3").append("\n");
expected.append("│ └──node4").append("\n");
expected.append("│ └──node5").append("\n");
expected.append("│ └──node6").append("\n");
expected.append("│ └──node7").append("\n");
expected.append("│ └──node8").append("\n");
expected.append("└──node2");
new BinaryTreePrinter(leftSkewed).print(System.out);
assertEquals(expected.toString(), output.toString());
}
@Test
public void givenBinaryTreeModelRightUnbalanced_whenPrintWithBinaryTreePrinter_thenProduceCorrectOutput() {
StringBuilder expected = new StringBuilder();
expected.append("root").append("\n");
expected.append("├──node1").append("\n");
expected.append("└──node2").append("\n");
expected.append(" └──node3").append("\n");
expected.append(" └──node4").append("\n");
expected.append(" └──node5").append("\n");
expected.append(" └──node6").append("\n");
expected.append(" └──node7").append("\n");
expected.append(" └──node8");
new BinaryTreePrinter(rightSkewed).print(System.out);
assertEquals(expected.toString(), output.toString());
}
}
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
public abstract class Animal {
public String type = "Animal";
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
public class Cow extends Animal {
private String breed;
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
public class Dog extends Animal {
private String petName;
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
public class Employee {
private int id;
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
import java.util.List;
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
import com.google.gson.annotations.Expose;
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
import java.util.Objects;
@@ -1,19 +1,19 @@
package org.baeldung.gson.entities;
public class User {
private int id;
private String name;
private transient String nationality;
public User(int id, String name, String nationality) {
this.id = id;
this.name = name;
this.nationality = nationality;
}
public User(int id, String name) {
this(id, name, null);
}
}
package com.baeldung.gson.entities;
public class User {
private int id;
private String name;
private transient String nationality;
public User(int id, String name, String nationality) {
this.id = id;
this.name = name;
this.nationality = nationality;
}
public User(int id, String name) {
this(id, name, null);
}
}
@@ -1,4 +1,4 @@
package org.baeldung.gson.entities;
package com.baeldung.gson.entities;
import com.google.gson.annotations.SerializedName;
@@ -1,4 +1,4 @@
package org.baeldung.gson.primitives.models;
package com.baeldung.gson.primitives.models;
public class BooleanExample {
public boolean value;
@@ -1,4 +1,4 @@
package org.baeldung.gson.primitives.models;
package com.baeldung.gson.primitives.models;
public class ByteExample {
public byte value = (byte) 1;
@@ -1,4 +1,4 @@
package org.baeldung.gson.primitives.models;
package com.baeldung.gson.primitives.models;
public class CharExample {
public char value;

Some files were not shown because too many files have changed in this diff Show More