From 0706cd84532d324f6556a19ad259fbae882ba919 Mon Sep 17 00:00:00 2001 From: maverick Date: Thu, 28 Jul 2016 16:38:17 +0530 Subject: [PATCH 01/15] First Commit for Sorting Examples. --- .../java/com/baeldung/beans/Employee.java | 49 +++++++++ .../org/baeldung/java/sorting/ArraySort.java | 88 +++++++++++++++ .../baeldung/java/sorting/ComparingTest.java | 38 +++++++ .../org/baeldung/java/sorting/Employee.java | 54 +++++++++ .../org/baeldung/java/sorting/ListSort.java | 59 ++++++++++ .../org/baeldung/java/sorting/MapSort.java | 104 ++++++++++++++++++ .../java/sorting/NaturalOrderExample.java | 34 ++++++ .../org/baeldung/java/sorting/SetSort.java | 54 +++++++++ 8 files changed, 480 insertions(+) create mode 100644 core-java/src/main/java/com/baeldung/beans/Employee.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/Employee.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ListSort.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/MapSort.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/SetSort.java diff --git a/core-java/src/main/java/com/baeldung/beans/Employee.java b/core-java/src/main/java/com/baeldung/beans/Employee.java new file mode 100644 index 0000000000..78d65e18fe --- /dev/null +++ b/core-java/src/main/java/com/baeldung/beans/Employee.java @@ -0,0 +1,49 @@ +package com.baeldung.beans; + +public class Employee implements Comparable{ + private String name; + private int age; + private double salary; + + public Employee() { + + } + + public Employee(String name, int age, double salary) { + super(); + this.name = name; + this.age = age; + this.salary = salary; + } + + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public double getSalary() { + return salary; + } + public void setSalary(double salary) { + this.salary = salary; + } + + @Override + public String toString() { + return "("+name+","+age+","+salary+")"; + + } + + @Override + public int compareTo(Object o) { + Employee e = (Employee) o; + return getAge() - e.getAge() ; + } +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java new file mode 100644 index 0000000000..3e55ab7f6a --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java @@ -0,0 +1,88 @@ +package org.baeldung.java.sorting; + +import static org.junit.Assert.*; + +import java.sql.Array; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +public class ArraySort { + + private int[] numbers; + private Integer[] integers; + private String[] names; + private Employee[] employees; + + @Before + public void initData() { + numbers = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; + integers = new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; + + names = new String[] { "John", "Apple", "Steve", "Frank", "Earl", "Jessica", "Jake", "Pearl" }; + + employees = new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }; + + } + + @Test + public void naturalSortIntArray() { + + Arrays.sort(numbers); + + } + + @Test + public void comparatorSortIntArray() { + + Arrays.sort(integers, new Comparator() { + + @Override + public int compare(Integer a, Integer b) { + return a - b; + } + }); + + } + + @Test + public void comparatorSortIntArray_Java8Lambda() { + Arrays.sort(integers, (a, b) -> { + return a - b; + }); + + } + + @Test + public void comparableSortEmployeeArrayByAge_NaturalOrder() { + + Arrays.sort(employees); + + } + + @Test + public void comparatorSortEmployeeArrayByName() { + Arrays.sort(employees, new Comparator() { + + @Override + public int compare(Employee o1, Employee o2) { + + return o1.getName().compareTo(o2.getName()); + } + }); + } + + @Test + public void comparatorSortEmployeeArrayByName_Java8Lambda() { + Arrays.sort(employees, (o1, o2) -> { + return o1.getName().compareTo(o2.getName()); + + }); + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java b/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java new file mode 100644 index 0000000000..02cdede7db --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java @@ -0,0 +1,38 @@ +package org.baeldung.java.sorting; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +public class ComparingTest { + + private List employees; + + @Before + public void initData() { + + // employees = Arrays.asList(new Employee[] { + // new Employee("John", 23, 5000), + // new Employee("Steve", 26, 6000), + // new Employee("Frank", 33, 7000), + // new Employee("Earl", 43, 10000), + // new Employee("Jessica", 23, 4000), + // new Employee("Pearl", 33, 6000) }); + + } + + @Test + public void testComparing() { + employees = Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }); + + employees.sort(Comparator.comparing(Employee::getAge).thenComparing(Employee::getName)); + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/Employee.java b/core-java/src/test/java/org/baeldung/java/sorting/Employee.java new file mode 100644 index 0000000000..f36e552daf --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/Employee.java @@ -0,0 +1,54 @@ +package org.baeldung.java.sorting; + +public class Employee implements Comparable { + private String name; + private int age; + private double salary; + + public Employee() { + + } + + public Employee(String name, int age, double salary) { + super(); + this.name = name; + this.age = age; + this.salary = salary; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getSalary() { + return salary; + } + + public void setSalary(double salary) { + this.salary = salary; + } + + @Override + public String toString() { + return "(" + name + "," + age + "," + salary + ")"; + + } + + @Override + public int compareTo(Object o) { + Employee e = (Employee) o; + return getAge() - e.getAge(); + } +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java b/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java new file mode 100644 index 0000000000..91e1c40607 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java @@ -0,0 +1,59 @@ +package org.baeldung.java.sorting; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +public class ListSort { + + private List integers; + private List employees; + + @Before + public void initData() { + integers = Arrays.asList(new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }); + + employees = Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }); + } + + @Test + public void naturalOrderIntegerListSort() { + + Collections.sort(integers); + + } + + @Test + public void comparableEmployeeSortByAge() { + + Collections.sort(employees); + + } + + @Test + public void comparatorEmployeeSortByName() { + + Collections.sort(employees, new Comparator() { + @Override + public int compare(Employee e1, Employee e2) { + return e1.getName().compareTo(e2.getName()); + } + }); + + } + + @Test + public void comparatorEmployeeSortByNameJava8() { + + Collections.sort(employees, (e1, e2) -> { + return e1.getName().compareTo(e1.getName()); + }); + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java b/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java new file mode 100644 index 0000000000..1a9fd30437 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java @@ -0,0 +1,104 @@ +package org.baeldung.java.sorting; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +import org.junit.Before; +import org.junit.Test; + +public class MapSort { + + HashMap map; + + @Before + public void initData() { + map = new HashMap<>(); + + map.put(55, "John"); + map.put(22, "Apple"); + map.put(66, "Earl"); + map.put(77, "Pearl"); + map.put(12, "George"); + map.put(6, "Rocky"); + + } + + @Test + public void sortMapByKeys() { + + + List> entries = new ArrayList<>(map.entrySet()); + + Collections.sort(entries, new Comparator>() { + + @Override + public int compare(Entry o1, Entry o2) { + + return o1.getKey().compareTo(o2.getKey()); + } + }); + + HashMap sortedMap = new LinkedHashMap<>(); + + for (Map.Entry entry : entries) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + + + } + + @Test + public void sortMapByValues() { + + //showMap(map); + + List> entries = new ArrayList<>(map.entrySet()); + + Collections.sort(entries, new Comparator>() { + + @Override + public int compare(Entry o1, Entry o2) { + return o1.getValue().compareTo(o2.getValue()); + } + }); + + HashMap sortedMap = new LinkedHashMap<>(); + for (Map.Entry entry : entries) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + +/// showMap(sortedMap); + } + + @Test + public void sortMapViaTreeMap() { + +// showMap(map); + Map treeMap = new TreeMap<>(new Comparator() { + @Override + public int compare(Integer o1, Integer o2) { + return o1 - o2; + } + }); + + treeMap.putAll(map); +// showMap(treeMap); + + } + + public void showMap(Map map1) { + for (Map.Entry entry : map1.entrySet()) { + System.out.println("[Key: " + entry.getKey() + " , " + "Value: " + entry.getValue() + "] "); + + } + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java b/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java new file mode 100644 index 0000000000..bb35557561 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java @@ -0,0 +1,34 @@ +package org.baeldung.java.sorting; + +import java.util.Arrays; +import java.util.Comparator; + +import org.junit.Test; + +public class NaturalOrderExample { + + @Test + public void sortArray() { + int[] numbers = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; + + Arrays.sort(numbers); + + } + + @Test + public void sortEmployees() { + Employee[] employees = new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }; + + Arrays.sort(employees, new Comparator() { + + @Override + public int compare(Employee o1, Employee o2) { + return -(int) (o1.getSalary() - o2.getSalary()); + } + }); + + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java b/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java new file mode 100644 index 0000000000..d892223862 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java @@ -0,0 +1,54 @@ +package org.baeldung.java.sorting; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.TreeSet; + +import org.junit.Before; +import org.junit.Test; + +public class SetSort { + + private HashSet integers; + private TreeSet employees; + + @Before + public void initData() { + + integers = new HashSet<>(); + integers.addAll(Arrays.asList(new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 })); + + employees = new TreeSet<>(); + + employees.addAll(Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), + new Employee("Frank", 33, 7000), new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) })); + + } + + @Test + public void hashSetSortIntegers() { + + + + ArrayList list = new ArrayList(integers); + Collections.sort(list, (i1, i2) -> { + return i2 - i1; + }); + + + } + + @Test + public void treeSetEmployeeSorting() { + + ArrayList list = new ArrayList(employees); + Collections.sort(list, (e1, e2) -> { + return e2.getName().compareTo(e1.getName()); + }); + + } + +} From bf1c98fd1679b3d0b6f6ff6cd766aa98042f2b8f Mon Sep 17 00:00:00 2001 From: maverick Date: Thu, 28 Jul 2016 16:38:17 +0530 Subject: [PATCH 02/15] First Commit for Sorting Examples. --- .../java/com/baeldung/beans/Employee.java | 49 +++++++++ .../org/baeldung/java/sorting/ArraySort.java | 88 +++++++++++++++ .../baeldung/java/sorting/ComparingTest.java | 38 +++++++ .../org/baeldung/java/sorting/Employee.java | 54 +++++++++ .../org/baeldung/java/sorting/ListSort.java | 59 ++++++++++ .../org/baeldung/java/sorting/MapSort.java | 104 ++++++++++++++++++ .../java/sorting/NaturalOrderExample.java | 34 ++++++ .../org/baeldung/java/sorting/SetSort.java | 54 +++++++++ 8 files changed, 480 insertions(+) create mode 100644 core-java/src/main/java/com/baeldung/beans/Employee.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/Employee.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ListSort.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/MapSort.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java create mode 100644 core-java/src/test/java/org/baeldung/java/sorting/SetSort.java diff --git a/core-java/src/main/java/com/baeldung/beans/Employee.java b/core-java/src/main/java/com/baeldung/beans/Employee.java new file mode 100644 index 0000000000..78d65e18fe --- /dev/null +++ b/core-java/src/main/java/com/baeldung/beans/Employee.java @@ -0,0 +1,49 @@ +package com.baeldung.beans; + +public class Employee implements Comparable{ + private String name; + private int age; + private double salary; + + public Employee() { + + } + + public Employee(String name, int age, double salary) { + super(); + this.name = name; + this.age = age; + this.salary = salary; + } + + public int getAge() { + return age; + } + public void setAge(int age) { + this.age = age; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public double getSalary() { + return salary; + } + public void setSalary(double salary) { + this.salary = salary; + } + + @Override + public String toString() { + return "("+name+","+age+","+salary+")"; + + } + + @Override + public int compareTo(Object o) { + Employee e = (Employee) o; + return getAge() - e.getAge() ; + } +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java new file mode 100644 index 0000000000..3e55ab7f6a --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java @@ -0,0 +1,88 @@ +package org.baeldung.java.sorting; + +import static org.junit.Assert.*; + +import java.sql.Array; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +public class ArraySort { + + private int[] numbers; + private Integer[] integers; + private String[] names; + private Employee[] employees; + + @Before + public void initData() { + numbers = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; + integers = new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; + + names = new String[] { "John", "Apple", "Steve", "Frank", "Earl", "Jessica", "Jake", "Pearl" }; + + employees = new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }; + + } + + @Test + public void naturalSortIntArray() { + + Arrays.sort(numbers); + + } + + @Test + public void comparatorSortIntArray() { + + Arrays.sort(integers, new Comparator() { + + @Override + public int compare(Integer a, Integer b) { + return a - b; + } + }); + + } + + @Test + public void comparatorSortIntArray_Java8Lambda() { + Arrays.sort(integers, (a, b) -> { + return a - b; + }); + + } + + @Test + public void comparableSortEmployeeArrayByAge_NaturalOrder() { + + Arrays.sort(employees); + + } + + @Test + public void comparatorSortEmployeeArrayByName() { + Arrays.sort(employees, new Comparator() { + + @Override + public int compare(Employee o1, Employee o2) { + + return o1.getName().compareTo(o2.getName()); + } + }); + } + + @Test + public void comparatorSortEmployeeArrayByName_Java8Lambda() { + Arrays.sort(employees, (o1, o2) -> { + return o1.getName().compareTo(o2.getName()); + + }); + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java b/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java new file mode 100644 index 0000000000..02cdede7db --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java @@ -0,0 +1,38 @@ +package org.baeldung.java.sorting; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +public class ComparingTest { + + private List employees; + + @Before + public void initData() { + + // employees = Arrays.asList(new Employee[] { + // new Employee("John", 23, 5000), + // new Employee("Steve", 26, 6000), + // new Employee("Frank", 33, 7000), + // new Employee("Earl", 43, 10000), + // new Employee("Jessica", 23, 4000), + // new Employee("Pearl", 33, 6000) }); + + } + + @Test + public void testComparing() { + employees = Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }); + + employees.sort(Comparator.comparing(Employee::getAge).thenComparing(Employee::getName)); + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/Employee.java b/core-java/src/test/java/org/baeldung/java/sorting/Employee.java new file mode 100644 index 0000000000..f36e552daf --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/Employee.java @@ -0,0 +1,54 @@ +package org.baeldung.java.sorting; + +public class Employee implements Comparable { + private String name; + private int age; + private double salary; + + public Employee() { + + } + + public Employee(String name, int age, double salary) { + super(); + this.name = name; + this.age = age; + this.salary = salary; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getSalary() { + return salary; + } + + public void setSalary(double salary) { + this.salary = salary; + } + + @Override + public String toString() { + return "(" + name + "," + age + "," + salary + ")"; + + } + + @Override + public int compareTo(Object o) { + Employee e = (Employee) o; + return getAge() - e.getAge(); + } +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java b/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java new file mode 100644 index 0000000000..91e1c40607 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java @@ -0,0 +1,59 @@ +package org.baeldung.java.sorting; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +public class ListSort { + + private List integers; + private List employees; + + @Before + public void initData() { + integers = Arrays.asList(new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }); + + employees = Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }); + } + + @Test + public void naturalOrderIntegerListSort() { + + Collections.sort(integers); + + } + + @Test + public void comparableEmployeeSortByAge() { + + Collections.sort(employees); + + } + + @Test + public void comparatorEmployeeSortByName() { + + Collections.sort(employees, new Comparator() { + @Override + public int compare(Employee e1, Employee e2) { + return e1.getName().compareTo(e2.getName()); + } + }); + + } + + @Test + public void comparatorEmployeeSortByNameJava8() { + + Collections.sort(employees, (e1, e2) -> { + return e1.getName().compareTo(e1.getName()); + }); + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java b/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java new file mode 100644 index 0000000000..1a9fd30437 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java @@ -0,0 +1,104 @@ +package org.baeldung.java.sorting; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +import org.junit.Before; +import org.junit.Test; + +public class MapSort { + + HashMap map; + + @Before + public void initData() { + map = new HashMap<>(); + + map.put(55, "John"); + map.put(22, "Apple"); + map.put(66, "Earl"); + map.put(77, "Pearl"); + map.put(12, "George"); + map.put(6, "Rocky"); + + } + + @Test + public void sortMapByKeys() { + + + List> entries = new ArrayList<>(map.entrySet()); + + Collections.sort(entries, new Comparator>() { + + @Override + public int compare(Entry o1, Entry o2) { + + return o1.getKey().compareTo(o2.getKey()); + } + }); + + HashMap sortedMap = new LinkedHashMap<>(); + + for (Map.Entry entry : entries) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + + + } + + @Test + public void sortMapByValues() { + + //showMap(map); + + List> entries = new ArrayList<>(map.entrySet()); + + Collections.sort(entries, new Comparator>() { + + @Override + public int compare(Entry o1, Entry o2) { + return o1.getValue().compareTo(o2.getValue()); + } + }); + + HashMap sortedMap = new LinkedHashMap<>(); + for (Map.Entry entry : entries) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + +/// showMap(sortedMap); + } + + @Test + public void sortMapViaTreeMap() { + +// showMap(map); + Map treeMap = new TreeMap<>(new Comparator() { + @Override + public int compare(Integer o1, Integer o2) { + return o1 - o2; + } + }); + + treeMap.putAll(map); +// showMap(treeMap); + + } + + public void showMap(Map map1) { + for (Map.Entry entry : map1.entrySet()) { + System.out.println("[Key: " + entry.getKey() + " , " + "Value: " + entry.getValue() + "] "); + + } + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java b/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java new file mode 100644 index 0000000000..bb35557561 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java @@ -0,0 +1,34 @@ +package org.baeldung.java.sorting; + +import java.util.Arrays; +import java.util.Comparator; + +import org.junit.Test; + +public class NaturalOrderExample { + + @Test + public void sortArray() { + int[] numbers = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; + + Arrays.sort(numbers); + + } + + @Test + public void sortEmployees() { + Employee[] employees = new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), + new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }; + + Arrays.sort(employees, new Comparator() { + + @Override + public int compare(Employee o1, Employee o2) { + return -(int) (o1.getSalary() - o2.getSalary()); + } + }); + + + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java b/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java new file mode 100644 index 0000000000..d892223862 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java @@ -0,0 +1,54 @@ +package org.baeldung.java.sorting; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.TreeSet; + +import org.junit.Before; +import org.junit.Test; + +public class SetSort { + + private HashSet integers; + private TreeSet employees; + + @Before + public void initData() { + + integers = new HashSet<>(); + integers.addAll(Arrays.asList(new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 })); + + employees = new TreeSet<>(); + + employees.addAll(Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), + new Employee("Frank", 33, 7000), new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) })); + + } + + @Test + public void hashSetSortIntegers() { + + + + ArrayList list = new ArrayList(integers); + Collections.sort(list, (i1, i2) -> { + return i2 - i1; + }); + + + } + + @Test + public void treeSetEmployeeSorting() { + + ArrayList list = new ArrayList(employees); + Collections.sort(list, (e1, e2) -> { + return e2.getName().compareTo(e1.getName()); + }); + + } + +} From 94f08d43af8890b2a53b76c26b9a468b8f00f1d3 Mon Sep 17 00:00:00 2001 From: maverick Date: Mon, 22 Aug 2016 13:21:24 +0530 Subject: [PATCH 03/15] sort variant and parallel sort added --- .../java/org/baeldung/java/sorting/ArraySort.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java index 3e55ab7f6a..cacbcdb727 100644 --- a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java +++ b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java @@ -84,5 +84,20 @@ public class ArraySort { }); } + + @Test + public void arraySortVariant() { + System.out.println(Arrays.toString(numbers)); + Arrays.sort(numbers, 3, 7); + System.out.println(Arrays.toString(numbers)); + + } + + @Test + public void arrayParallelSortVariant() { + + Arrays.parallelSort(numbers); + + } } From d18e64037ed837ab89b49e4e17a859ce8bb2e71e Mon Sep 17 00:00:00 2001 From: maverick Date: Wed, 31 Aug 2016 19:29:25 +0530 Subject: [PATCH 04/15] Changes for naming conventions in test functions --- .../src/test/java/org/baeldung/java/sorting/ArraySort.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java index cacbcdb727..35e6c8b46d 100644 --- a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java +++ b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java @@ -51,7 +51,7 @@ public class ArraySort { } @Test - public void comparatorSortIntArray_Java8Lambda() { + public void givenArray_whenUsingSortWithLambdas_thenSortedArray() { Arrays.sort(integers, (a, b) -> { return a - b; }); @@ -86,7 +86,7 @@ public class ArraySort { } @Test - public void arraySortVariant() { + public void givenIntArray_whenUsingRangeSort_thenRangeSortedArray() { System.out.println(Arrays.toString(numbers)); Arrays.sort(numbers, 3, 7); System.out.println(Arrays.toString(numbers)); @@ -94,7 +94,7 @@ public class ArraySort { } @Test - public void arrayParallelSortVariant() { + public void givenIntArray_whenUsingParallelSort_thenParallelSortedArray() { Arrays.parallelSort(numbers); From 657d1a507f25b8e7f1163c76e109735002843315 Mon Sep 17 00:00:00 2001 From: Kiran Date: Tue, 6 Sep 2016 21:16:06 -0400 Subject: [PATCH 05/15] Add files via upload --- spring-mvc-tiles/pom.xml | 99 +++++++++++++++++++ .../springmvc/ApplicationConfiguration.java | 47 +++++++++ .../springmvc/ApplicationController.java | 27 +++++ .../springmvc/ApplicationInitializer.java | 22 +++++ .../WEB-INF/views/pages/apachetiles.jsp | 12 +++ .../main/webapp/WEB-INF/views/pages/home.jsp | 12 +++ .../webapp/WEB-INF/views/pages/springmvc.jsp | 12 +++ .../views/tiles/layouts/defaultLayout.jsp | 25 +++++ .../views/tiles/templates/defaultFooter.jsp | 2 + .../views/tiles/templates/defaultHeader.jsp | 3 + .../views/tiles/templates/defaultMenu.jsp | 8 ++ .../main/webapp/WEB-INF/views/tiles/tiles.xml | 34 +++++++ .../src/main/webapp/static/css/app.css | 36 +++++++ 13 files changed, 339 insertions(+) create mode 100644 spring-mvc-tiles/pom.xml create mode 100644 spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java create mode 100644 spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java create mode 100644 spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/home.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/springmvc.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp create mode 100644 spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/tiles.xml create mode 100644 spring-mvc-tiles/src/main/webapp/static/css/app.css diff --git a/spring-mvc-tiles/pom.xml b/spring-mvc-tiles/pom.xml new file mode 100644 index 0000000000..abbb9a2870 --- /dev/null +++ b/spring-mvc-tiles/pom.xml @@ -0,0 +1,99 @@ + + 4.0.0 + com.baeldung + spring-mvc-tiles + 0.0.1-SNAPSHOT + war + spring-mvc-tiles + Integrating Spring MVC with Apache Tiles + + + 4.3.2.RELEASE + 3.0.5 + + + + + + org.springframework + spring-core + ${springframework.version} + + + org.springframework + spring-web + ${springframework.version} + + + org.springframework + spring-webmvc + ${springframework.version} + + + + org.apache.tiles + tiles-core + ${apachetiles.version} + + + org.apache.tiles + tiles-api + ${apachetiles.version} + + + org.apache.tiles + tiles-servlet + ${apachetiles.version} + + + org.apache.tiles + tiles-jsp + ${apachetiles.version} + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + javax.servlet.jsp + javax.servlet.jsp-api + 2.3.1 + + + javax.servlet + jstl + 1.2 + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-war-plugin + 2.4 + + src/main/webapp + spring-mvc-tiles + false + + + + + spring-mvc-tiles + + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java new file mode 100644 index 0000000000..1ae6d1b23c --- /dev/null +++ b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java @@ -0,0 +1,47 @@ +package com.baeldung.tiles.springmvc; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.tiles3.TilesConfigurer; +import org.springframework.web.servlet.view.tiles3.TilesViewResolver; + +@Configuration +@EnableWebMvc +@ComponentScan(basePackages = "com.baeldung.tiles.springmvc") +public class ApplicationConfiguration extends WebMvcConfigurerAdapter { + + /** + * Configure TilesConfigurer. + */ + @Bean + public TilesConfigurer tilesConfigurer() { + TilesConfigurer tilesConfigurer = new TilesConfigurer(); + tilesConfigurer.setDefinitions(new String[] { "/WEB-INF/views/**/tiles.xml" }); + tilesConfigurer.setCheckRefresh(true); + return tilesConfigurer; + } + + /** + * Configure ViewResolvers to deliver views. + */ + @Override + public void configureViewResolvers(ViewResolverRegistry registry) { + TilesViewResolver viewResolver = new TilesViewResolver(); + registry.viewResolver(viewResolver); + } + + /** + * Configure ResourceHandlers to serve static resources + */ + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/static/**").addResourceLocations("/static/"); + } + +} diff --git a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java new file mode 100644 index 0000000000..b85ad54587 --- /dev/null +++ b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java @@ -0,0 +1,27 @@ +package com.baeldung.tiles.springmvc; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + + +@Controller +@RequestMapping("/") +public class ApplicationController { + + @RequestMapping(value = { "/"}, method = RequestMethod.GET) + public String homePage(ModelMap model) { + return "home"; + } + + @RequestMapping(value = { "/apachetiles"}, method = RequestMethod.GET) + public String productsPage(ModelMap model) { + return "apachetiles"; + } + + @RequestMapping(value = { "/springmvc"}, method = RequestMethod.GET) + public String contactUsPage(ModelMap model) { + return "springmvc"; + } +} diff --git a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java new file mode 100644 index 0000000000..ababe0ae07 --- /dev/null +++ b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java @@ -0,0 +1,22 @@ +package com.baeldung.tiles.springmvc; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { + + @Override + protected Class[] getRootConfigClasses() { + return new Class[] { ApplicationConfiguration.class }; + } + + @Override + protected Class[] getServletConfigClasses() { + return null; + } + + @Override + protected String[] getServletMappings() { + return new String[] { "/" }; + } + +} diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp new file mode 100644 index 0000000000..9936957c04 --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + +Apache Tiles + + +

Tiles with Spring MVC Demo

+ + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/home.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/home.jsp new file mode 100644 index 0000000000..b501d4968e --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/home.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + +Home + + +

Welcome to Apache Tiles integration with Spring MVC

+ + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/springmvc.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/springmvc.jsp new file mode 100644 index 0000000000..209b1004de --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/pages/springmvc.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + +Spring MVC + + +

Spring MVC configured to work with Apache Tiles

+ + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp new file mode 100644 index 0000000000..9b727473f9 --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp @@ -0,0 +1,25 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> +<%@ page isELIgnored="false"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> + + + + + +<tiles:getAsString name="title" /> + + + + +
+ + +
+ +
+ +
+ + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp new file mode 100644 index 0000000000..3849cc5230 --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp @@ -0,0 +1,2 @@ + +
copyright © Baeldung
diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp new file mode 100644 index 0000000000..8a878c857d --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp @@ -0,0 +1,3 @@ +
+

Welcome to Spring MVC integration with Apache Tiles

+
\ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp new file mode 100644 index 0000000000..fdfbdc8a14 --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/tiles.xml b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/tiles.xml new file mode 100644 index 0000000000..789fbd809a --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/tiles.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc-tiles/src/main/webapp/static/css/app.css b/spring-mvc-tiles/src/main/webapp/static/css/app.css new file mode 100644 index 0000000000..9976e5406e --- /dev/null +++ b/spring-mvc-tiles/src/main/webapp/static/css/app.css @@ -0,0 +1,36 @@ +.flex-container { + display: -webkit-flex; + display: flex; + -webkit-flex-flow: row wrap; + flex-flow: row wrap; + text-align: center; +} + +.flex-container > * { + padding: 15px; + -webkit-flex: 1 100%; + flex: 1 100%; +} + +.article { + text-align: left; +} + +header {background: black;color:white;} +footer {background: #aaa;color:white;} +.nav {background:#eee;} + +.nav ul { + list-style-type: none; + padding: 0; +} + +.nav ul a { + text-decoration: none; +} + +@media all and (min-width: 768px) { + .nav {text-align:left;-webkit-flex: 1 auto;flex:1 auto;-webkit-order:1;order:1;} + .article {-webkit-flex:5 0px;flex:5 0px;-webkit-order:2;order:2;} + footer {-webkit-order:3;order:3;} +} \ No newline at end of file From 739502694fd0192a24581762e999b1ad31ea3358 Mon Sep 17 00:00:00 2001 From: maverick Date: Wed, 7 Sep 2016 09:30:34 +0530 Subject: [PATCH 06/15] md5 changes --- core-java/pom.xml | 341 +++++++++--------- .../org/baeldung/java/md5/JavaMD5Test.java | 90 +++++ 2 files changed, 265 insertions(+), 166 deletions(-) create mode 100644 core-java/src/test/java/org/baeldung/java/md5/JavaMD5Test.java diff --git a/core-java/pom.xml b/core-java/pom.xml index bc533607e7..802436e606 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -1,205 +1,214 @@ - - 4.0.0 - com.baeldung - core-java - 0.1.0-SNAPSHOT + + 4.0.0 + com.baeldung + core-java + 0.1.0-SNAPSHOT - core-java + core-java - + - - - net.sourceforge.collections - collections-generic - 4.01 - - - com.google.guava - guava - ${guava.version} - + + + net.sourceforge.collections + collections-generic + 4.01 + + + com.google.guava + guava + ${guava.version} + - - org.apache.commons - commons-collections4 - 4.0 - + + org.apache.commons + commons-collections4 + 4.0 + - - commons-io - commons-io - 2.4 - + + commons-io + commons-io + 2.4 + - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + - - org.apache.commons - commons-math3 - 3.3 - + + org.apache.commons + commons-math3 + 3.3 + - + - + - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - + - - org.slf4j - slf4j-api - ${org.slf4j.version} - - - ch.qos.logback - logback-classic - ${logback.version} - - - - org.slf4j - jcl-over-slf4j - ${org.slf4j.version} - - - - org.slf4j - log4j-over-slf4j - ${org.slf4j.version} - + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + org.slf4j + jcl-over-slf4j + ${org.slf4j.version} + + + + org.slf4j + log4j-over-slf4j + ${org.slf4j.version} + - + - - junit - junit - ${junit.version} - test - + + junit + junit + ${junit.version} + test + - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + - - org.assertj - assertj-core - ${assertj.version} - test - + + org.assertj + assertj-core + ${assertj.version} + test + - - org.testng - testng - ${testng.version} - test - + + org.testng + testng + ${testng.version} + test + - - org.mockito - mockito-core - ${mockito.version} - test - + + org.mockito + mockito-core + ${mockito.version} + test + - + + + commons-codec + commons-codec + 1.10 + - - core-java - - - src/main/resources - true - - - + - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - 1.8 - 1.8 - - + + core-java + + + src/main/resources + true + + - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - **/*IntegrationTest.java - - - + - + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + + - + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + **/*IntegrationTest.java + + + - - - 4.3.11.Final - 5.1.38 + - - 2.7.2 + - - 1.7.13 - 1.1.3 + + + 4.3.11.Final + 5.1.38 - - 5.1.3.Final + + 2.7.2 - - 19.0 - 3.4 + + 1.7.13 + 1.1.3 - - 1.3 - 4.12 - 1.10.19 - 6.8 - 3.5.1 + + 5.1.3.Final - 4.4.1 - 4.5 + + 19.0 + 3.4 - 2.9.0 + + 1.3 + 4.12 + 1.10.19 + 6.8 + 3.5.1 - - 3.5.1 - 2.6 - 2.19.1 - 2.7 - 1.4.18 + 4.4.1 + 4.5 - + 2.9.0 + + + 3.5.1 + 2.6 + 2.19.1 + 2.7 + 1.4.18 + + \ No newline at end of file diff --git a/core-java/src/test/java/org/baeldung/java/md5/JavaMD5Test.java b/core-java/src/test/java/org/baeldung/java/md5/JavaMD5Test.java new file mode 100644 index 0000000000..83f1fb33b6 --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/md5/JavaMD5Test.java @@ -0,0 +1,90 @@ +package org.baeldung.java.md5; + +import static org.junit.Assert.*; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import javax.xml.bind.DatatypeConverter; + +import org.apache.commons.codec.digest.DigestUtils; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.hash.HashCode; +import com.google.common.hash.Hashing; + +import java.io.File; +import java.io.IOException; +import java.nio.*; +import static org.assertj.core.api.Assertions.assertThat; + + +public class JavaMD5Test { + + + String filename = "src/test/resources/test_md5.txt"; + String checksum = "5EB63BBBE01EEED093CB22BB8F5ACDC3"; + + String hash = "35454B055CC325EA1AF2126E27707052"; + String password = "ILoveJava"; + + + + @Test + public void givenPassword_whenHashing_thenVerifying() throws NoSuchAlgorithmException { + String hash = "35454B055CC325EA1AF2126E27707052"; + String password = "ILoveJava"; + + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(password.getBytes()); + byte[] digest = md.digest(); + String myHash = DatatypeConverter.printHexBinary(digest).toUpperCase(); + + assertThat(myHash.equals(hash)).isTrue(); + } + + @Test + public void givenFile_generatingChecksum_thenVerifying() throws NoSuchAlgorithmException, IOException { + String filename = "src/test/resources/test_md5.txt"; + String checksum = "5EB63BBBE01EEED093CB22BB8F5ACDC3"; + + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(Files.readAllBytes(Paths.get(filename))); + byte[] digest = md.digest(); + String myChecksum = DatatypeConverter + .printHexBinary(digest).toUpperCase(); + + assertThat(myChecksum.equals(checksum)).isTrue(); + } + + @Test + public void givenPassword_whenHashingUsingCommons_thenVerifying() { + String hash = "35454B055CC325EA1AF2126E27707052"; + String password = "ILoveJava"; + + String md5Hex = DigestUtils + .md5Hex(password).toUpperCase(); + + assertThat(md5Hex.equals(hash)).isTrue(); + } + + + @Test + public void givenFile_whenChecksumUsingGuava_thenVerifying() throws IOException { + String filename = "src/test/resources/test_md5.txt"; + String checksum = "5EB63BBBE01EEED093CB22BB8F5ACDC3"; + + HashCode hash = com.google.common.io.Files + .hash(new File(filename), Hashing.md5()); + String myChecksum = hash.toString() + .toUpperCase(); + + assertThat(myChecksum.equals(checksum)).isTrue(); + } + + +} From 651c40778790d5f34d5a08318495934e1760dbbb Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:47:13 -0400 Subject: [PATCH 07/15] Added 'spring-mvc-tiles' module to parent pom.xml --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 82cf85208c..49d046e483 100644 --- a/pom.xml +++ b/pom.xml @@ -58,6 +58,7 @@ spring-mvc-java spring-mvc-no-xml spring-mvc-xml + spring-mvc-tiles spring-openid spring-protobuf spring-quartz From f6e5e17c9a7f302efec1ee2441a0f086a8535d3a Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:49:17 -0400 Subject: [PATCH 08/15] Updated indentation --- .../springmvc/ApplicationConfiguration.java | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java index 1ae6d1b23c..d2e90a4f53 100644 --- a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java +++ b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationConfiguration.java @@ -15,33 +15,33 @@ import org.springframework.web.servlet.view.tiles3.TilesViewResolver; @ComponentScan(basePackages = "com.baeldung.tiles.springmvc") public class ApplicationConfiguration extends WebMvcConfigurerAdapter { - /** - * Configure TilesConfigurer. - */ - @Bean - public TilesConfigurer tilesConfigurer() { - TilesConfigurer tilesConfigurer = new TilesConfigurer(); - tilesConfigurer.setDefinitions(new String[] { "/WEB-INF/views/**/tiles.xml" }); - tilesConfigurer.setCheckRefresh(true); - return tilesConfigurer; - } + /** + * Configure TilesConfigurer. + */ + @Bean + public TilesConfigurer tilesConfigurer() { + TilesConfigurer tilesConfigurer = new TilesConfigurer(); + tilesConfigurer.setDefinitions(new String[] { "/WEB-INF/views/**/tiles.xml" }); + tilesConfigurer.setCheckRefresh(true); + return tilesConfigurer; + } - /** - * Configure ViewResolvers to deliver views. - */ - @Override - public void configureViewResolvers(ViewResolverRegistry registry) { - TilesViewResolver viewResolver = new TilesViewResolver(); - registry.viewResolver(viewResolver); - } + /** + * Configure ViewResolvers to deliver views. + */ + @Override + public void configureViewResolvers(ViewResolverRegistry registry) { + TilesViewResolver viewResolver = new TilesViewResolver(); + registry.viewResolver(viewResolver); + } - /** - * Configure ResourceHandlers to serve static resources - */ + /** + * Configure ResourceHandlers to serve static resources + */ - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/static/**").addResourceLocations("/static/"); - } + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/static/**").addResourceLocations("/static/"); + } } From 7f58390d53aba4b5472ebc5ba6b1ca4c033c8114 Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:50:14 -0400 Subject: [PATCH 09/15] Updated indentation --- .../tiles/springmvc/ApplicationController.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java index b85ad54587..1a348d1c26 100644 --- a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java +++ b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationController.java @@ -4,23 +4,22 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; - @Controller @RequestMapping("/") public class ApplicationController { - @RequestMapping(value = { "/"}, method = RequestMethod.GET) + @RequestMapping(value = { "/" }, method = RequestMethod.GET) public String homePage(ModelMap model) { return "home"; } - - @RequestMapping(value = { "/apachetiles"}, method = RequestMethod.GET) + + @RequestMapping(value = { "/apachetiles" }, method = RequestMethod.GET) public String productsPage(ModelMap model) { return "apachetiles"; } - - @RequestMapping(value = { "/springmvc"}, method = RequestMethod.GET) + + @RequestMapping(value = { "/springmvc" }, method = RequestMethod.GET) public String contactUsPage(ModelMap model) { return "springmvc"; } From d9ae777b2e62e38eda6b04ecc414ebc3c57760f1 Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:50:56 -0400 Subject: [PATCH 10/15] Updated indentation --- .../springmvc/ApplicationInitializer.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java index ababe0ae07..79583dbe83 100644 --- a/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java +++ b/spring-mvc-tiles/src/main/java/com/baeldung/tiles/springmvc/ApplicationInitializer.java @@ -4,19 +4,19 @@ import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatche public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { - @Override - protected Class[] getRootConfigClasses() { - return new Class[] { ApplicationConfiguration.class }; - } + @Override + protected Class[] getRootConfigClasses() { + return new Class[] { ApplicationConfiguration.class }; + } - @Override - protected Class[] getServletConfigClasses() { - return null; - } + @Override + protected Class[] getServletConfigClasses() { + return null; + } - @Override - protected String[] getServletMappings() { - return new String[] { "/" }; - } + @Override + protected String[] getServletMappings() { + return new String[] { "/" }; + } } From 6b42940de807ea2fe361bd0519dc8359698951f2 Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:51:55 -0400 Subject: [PATCH 11/15] Updated indentation --- spring-mvc-tiles/pom.xml | 184 ++++++++++++++++++--------------------- 1 file changed, 85 insertions(+), 99 deletions(-) diff --git a/spring-mvc-tiles/pom.xml b/spring-mvc-tiles/pom.xml index abbb9a2870..1a72549e70 100644 --- a/spring-mvc-tiles/pom.xml +++ b/spring-mvc-tiles/pom.xml @@ -1,99 +1,85 @@ - - 4.0.0 - com.baeldung - spring-mvc-tiles - 0.0.1-SNAPSHOT - war - spring-mvc-tiles - Integrating Spring MVC with Apache Tiles - - - 4.3.2.RELEASE - 3.0.5 - - - - - - org.springframework - spring-core - ${springframework.version} - - - org.springframework - spring-web - ${springframework.version} - - - org.springframework - spring-webmvc - ${springframework.version} - - - - org.apache.tiles - tiles-core - ${apachetiles.version} - - - org.apache.tiles - tiles-api - ${apachetiles.version} - - - org.apache.tiles - tiles-servlet - ${apachetiles.version} - - - org.apache.tiles - tiles-jsp - ${apachetiles.version} - - - - - javax.servlet - javax.servlet-api - 3.1.0 - - - javax.servlet.jsp - javax.servlet.jsp-api - 2.3.1 - - - javax.servlet - jstl - 1.2 - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.2 - - 1.7 - 1.7 - - - - org.apache.maven.plugins - maven-war-plugin - 2.4 - - src/main/webapp - spring-mvc-tiles - false - - - - - spring-mvc-tiles - - \ No newline at end of file + + 4.0.0 + com.baeldung + spring-mvc-tiles + 0.0.1-SNAPSHOT + war + spring-mvc-tiles + Integrating Spring MVC with Apache Tiles + + + 4.3.2.RELEASE + 3.0.5 + + + + + + org.springframework + spring-core + ${springframework.version} + + + org.springframework + spring-web + ${springframework.version} + + + org.springframework + spring-webmvc + ${springframework.version} + + + + org.apache.tiles + tiles-jsp + ${apachetiles.version} + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + javax.servlet.jsp + javax.servlet.jsp-api + 2.3.1 + + + javax.servlet + jstl + 1.2 + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-war-plugin + 2.4 + + src/main/webapp + spring-mvc-tiles + false + + + + + spring-mvc-tiles + + From 0836270addbc959d6da1f2bfd144a17bdec41184 Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:55:18 -0400 Subject: [PATCH 12/15] Updated indentation --- .../main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp index fdfbdc8a14..2c91eace85 100644 --- a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp @@ -1,8 +1,8 @@ \ No newline at end of file + From d98f232033638709ffa40446b77441e5d2fc1e13 Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 28 Sep 2016 16:57:46 -0400 Subject: [PATCH 13/15] Updated indentation --- .../views/tiles/layouts/defaultLayout.jsp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp index 9b727473f9..2370ad4ab1 100644 --- a/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp +++ b/spring-mvc-tiles/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp @@ -13,13 +13,13 @@ -
- - -
- -
- -
+
+ + +
+ +
+ +
- \ No newline at end of file + From e0d9cd41a2e0fae80d6be324767f295517ba8fac Mon Sep 17 00:00:00 2001 From: maverick Date: Thu, 29 Sep 2016 14:57:30 +0530 Subject: [PATCH 14/15] Changes in pom.xml as suggested to remove formating changes in pom.xml commit. --- core-java/pom.xml | 347 +++++++++++++++++++++++----------------------- 1 file changed, 172 insertions(+), 175 deletions(-) diff --git a/core-java/pom.xml b/core-java/pom.xml index 802436e606..bce97d1148 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -1,214 +1,211 @@ - - 4.0.0 - com.baeldung - core-java - 0.1.0-SNAPSHOT + + 4.0.0 + com.baeldung + core-java + 0.1.0-SNAPSHOT - core-java + core-java - + - - - net.sourceforge.collections - collections-generic - 4.01 - - - com.google.guava - guava - ${guava.version} - + + + net.sourceforge.collections + collections-generic + 4.01 + + + com.google.guava + guava + ${guava.version} + - - org.apache.commons - commons-collections4 - 4.0 - + + org.apache.commons + commons-collections4 + 4.0 + - - commons-io - commons-io - 2.4 - + + commons-io + commons-io + 2.4 + - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + - - org.apache.commons - commons-math3 - 3.3 - + + org.apache.commons + commons-math3 + 3.3 + - + - + - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + - + - - org.slf4j - slf4j-api - ${org.slf4j.version} - - - ch.qos.logback - logback-classic - ${logback.version} - - - - org.slf4j - jcl-over-slf4j - ${org.slf4j.version} - - - - org.slf4j - log4j-over-slf4j - ${org.slf4j.version} - + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + org.slf4j + jcl-over-slf4j + ${org.slf4j.version} + + + + org.slf4j + log4j-over-slf4j + ${org.slf4j.version} + - + - - junit - junit - ${junit.version} - test - + + junit + junit + ${junit.version} + test + - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + - - org.assertj - assertj-core - ${assertj.version} - test - + + org.assertj + assertj-core + ${assertj.version} + test + - - org.testng - testng - ${testng.version} - test - + + org.testng + testng + ${testng.version} + test + - - org.mockito - mockito-core - ${mockito.version} - test - + + org.mockito + mockito-core + ${mockito.version} + test + + + + commons-codec + commons-codec + 1.10 + - - - commons-codec - commons-codec - 1.10 - + + + core-java + + + src/main/resources + true + + - + - - core-java - - - src/main/resources - true - - + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + + - + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + **/*IntegrationTest.java + + + - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - 1.8 - 1.8 - - + - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - **/*IntegrationTest.java - - - + - + + + 4.3.11.Final + 5.1.38 - + + 2.7.2 - - - 4.3.11.Final - 5.1.38 + + 1.7.13 + 1.1.3 - - 2.7.2 + + 5.1.3.Final - - 1.7.13 - 1.1.3 + + 19.0 + 3.4 - - 5.1.3.Final + + 1.3 + 4.12 + 1.10.19 + 6.8 + 3.5.1 - - 19.0 - 3.4 + 4.4.1 + 4.5 - - 1.3 - 4.12 - 1.10.19 - 6.8 - 3.5.1 + 2.9.0 - 4.4.1 - 4.5 + + 3.5.1 + 2.6 + 2.19.1 + 2.7 + 1.4.18 - 2.9.0 - - - 3.5.1 - 2.6 - 2.19.1 - 2.7 - 1.4.18 - - + \ No newline at end of file From 758c5f7319765ed5b1fb352dfd6eca7d67c57162 Mon Sep 17 00:00:00 2001 From: maverick Date: Thu, 29 Sep 2016 15:06:45 +0530 Subject: [PATCH 15/15] Removed files not useful in this branch for MD5 article. --- .../java/com/baeldung/beans/Employee.java | 49 --------- .../org/baeldung/java/sorting/ArraySort.java | 103 ----------------- .../baeldung/java/sorting/ComparingTest.java | 38 ------- .../org/baeldung/java/sorting/Employee.java | 54 --------- .../org/baeldung/java/sorting/ListSort.java | 59 ---------- .../org/baeldung/java/sorting/MapSort.java | 104 ------------------ .../java/sorting/NaturalOrderExample.java | 34 ------ .../org/baeldung/java/sorting/SetSort.java | 54 --------- 8 files changed, 495 deletions(-) delete mode 100644 core-java/src/main/java/com/baeldung/beans/Employee.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/Employee.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/ListSort.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/MapSort.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java delete mode 100644 core-java/src/test/java/org/baeldung/java/sorting/SetSort.java diff --git a/core-java/src/main/java/com/baeldung/beans/Employee.java b/core-java/src/main/java/com/baeldung/beans/Employee.java deleted file mode 100644 index 78d65e18fe..0000000000 --- a/core-java/src/main/java/com/baeldung/beans/Employee.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.baeldung.beans; - -public class Employee implements Comparable{ - private String name; - private int age; - private double salary; - - public Employee() { - - } - - public Employee(String name, int age, double salary) { - super(); - this.name = name; - this.age = age; - this.salary = salary; - } - - public int getAge() { - return age; - } - public void setAge(int age) { - this.age = age; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public double getSalary() { - return salary; - } - public void setSalary(double salary) { - this.salary = salary; - } - - @Override - public String toString() { - return "("+name+","+age+","+salary+")"; - - } - - @Override - public int compareTo(Object o) { - Employee e = (Employee) o; - return getAge() - e.getAge() ; - } -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java b/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java deleted file mode 100644 index 35e6c8b46d..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/ArraySort.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.baeldung.java.sorting; - -import static org.junit.Assert.*; - -import java.sql.Array; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; - -public class ArraySort { - - private int[] numbers; - private Integer[] integers; - private String[] names; - private Employee[] employees; - - @Before - public void initData() { - numbers = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; - integers = new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; - - names = new String[] { "John", "Apple", "Steve", "Frank", "Earl", "Jessica", "Jake", "Pearl" }; - - employees = new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), - new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }; - - } - - @Test - public void naturalSortIntArray() { - - Arrays.sort(numbers); - - } - - @Test - public void comparatorSortIntArray() { - - Arrays.sort(integers, new Comparator() { - - @Override - public int compare(Integer a, Integer b) { - return a - b; - } - }); - - } - - @Test - public void givenArray_whenUsingSortWithLambdas_thenSortedArray() { - Arrays.sort(integers, (a, b) -> { - return a - b; - }); - - } - - @Test - public void comparableSortEmployeeArrayByAge_NaturalOrder() { - - Arrays.sort(employees); - - } - - @Test - public void comparatorSortEmployeeArrayByName() { - Arrays.sort(employees, new Comparator() { - - @Override - public int compare(Employee o1, Employee o2) { - - return o1.getName().compareTo(o2.getName()); - } - }); - } - - @Test - public void comparatorSortEmployeeArrayByName_Java8Lambda() { - Arrays.sort(employees, (o1, o2) -> { - return o1.getName().compareTo(o2.getName()); - - }); - } - - @Test - public void givenIntArray_whenUsingRangeSort_thenRangeSortedArray() { - System.out.println(Arrays.toString(numbers)); - Arrays.sort(numbers, 3, 7); - System.out.println(Arrays.toString(numbers)); - - } - - @Test - public void givenIntArray_whenUsingParallelSort_thenParallelSortedArray() { - - Arrays.parallelSort(numbers); - - } - -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java b/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java deleted file mode 100644 index 02cdede7db..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/ComparingTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.baeldung.java.sorting; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; - -public class ComparingTest { - - private List employees; - - @Before - public void initData() { - - // employees = Arrays.asList(new Employee[] { - // new Employee("John", 23, 5000), - // new Employee("Steve", 26, 6000), - // new Employee("Frank", 33, 7000), - // new Employee("Earl", 43, 10000), - // new Employee("Jessica", 23, 4000), - // new Employee("Pearl", 33, 6000) }); - - } - - @Test - public void testComparing() { - employees = Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), - new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }); - - employees.sort(Comparator.comparing(Employee::getAge).thenComparing(Employee::getName)); - - } - -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/Employee.java b/core-java/src/test/java/org/baeldung/java/sorting/Employee.java deleted file mode 100644 index f36e552daf..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/Employee.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.baeldung.java.sorting; - -public class Employee implements Comparable { - private String name; - private int age; - private double salary; - - public Employee() { - - } - - public Employee(String name, int age, double salary) { - super(); - this.name = name; - this.age = age; - this.salary = salary; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public double getSalary() { - return salary; - } - - public void setSalary(double salary) { - this.salary = salary; - } - - @Override - public String toString() { - return "(" + name + "," + age + "," + salary + ")"; - - } - - @Override - public int compareTo(Object o) { - Employee e = (Employee) o; - return getAge() - e.getAge(); - } -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java b/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java deleted file mode 100644 index 91e1c40607..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/ListSort.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.baeldung.java.sorting; - -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; - -public class ListSort { - - private List integers; - private List employees; - - @Before - public void initData() { - integers = Arrays.asList(new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }); - - employees = Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), - new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }); - } - - @Test - public void naturalOrderIntegerListSort() { - - Collections.sort(integers); - - } - - @Test - public void comparableEmployeeSortByAge() { - - Collections.sort(employees); - - } - - @Test - public void comparatorEmployeeSortByName() { - - Collections.sort(employees, new Comparator() { - @Override - public int compare(Employee e1, Employee e2) { - return e1.getName().compareTo(e2.getName()); - } - }); - - } - - @Test - public void comparatorEmployeeSortByNameJava8() { - - Collections.sort(employees, (e1, e2) -> { - return e1.getName().compareTo(e1.getName()); - }); - - } - -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java b/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java deleted file mode 100644 index 1a9fd30437..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/MapSort.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.baeldung.java.sorting; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; - -import org.junit.Before; -import org.junit.Test; - -public class MapSort { - - HashMap map; - - @Before - public void initData() { - map = new HashMap<>(); - - map.put(55, "John"); - map.put(22, "Apple"); - map.put(66, "Earl"); - map.put(77, "Pearl"); - map.put(12, "George"); - map.put(6, "Rocky"); - - } - - @Test - public void sortMapByKeys() { - - - List> entries = new ArrayList<>(map.entrySet()); - - Collections.sort(entries, new Comparator>() { - - @Override - public int compare(Entry o1, Entry o2) { - - return o1.getKey().compareTo(o2.getKey()); - } - }); - - HashMap sortedMap = new LinkedHashMap<>(); - - for (Map.Entry entry : entries) { - sortedMap.put(entry.getKey(), entry.getValue()); - } - - - } - - @Test - public void sortMapByValues() { - - //showMap(map); - - List> entries = new ArrayList<>(map.entrySet()); - - Collections.sort(entries, new Comparator>() { - - @Override - public int compare(Entry o1, Entry o2) { - return o1.getValue().compareTo(o2.getValue()); - } - }); - - HashMap sortedMap = new LinkedHashMap<>(); - for (Map.Entry entry : entries) { - sortedMap.put(entry.getKey(), entry.getValue()); - } - -/// showMap(sortedMap); - } - - @Test - public void sortMapViaTreeMap() { - -// showMap(map); - Map treeMap = new TreeMap<>(new Comparator() { - @Override - public int compare(Integer o1, Integer o2) { - return o1 - o2; - } - }); - - treeMap.putAll(map); -// showMap(treeMap); - - } - - public void showMap(Map map1) { - for (Map.Entry entry : map1.entrySet()) { - System.out.println("[Key: " + entry.getKey() + " , " + "Value: " + entry.getValue() + "] "); - - } - - } - -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java b/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java deleted file mode 100644 index bb35557561..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/NaturalOrderExample.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.baeldung.java.sorting; - -import java.util.Arrays; -import java.util.Comparator; - -import org.junit.Test; - -public class NaturalOrderExample { - - @Test - public void sortArray() { - int[] numbers = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; - - Arrays.sort(numbers); - - } - - @Test - public void sortEmployees() { - Employee[] employees = new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), new Employee("Frank", 33, 7000), - new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) }; - - Arrays.sort(employees, new Comparator() { - - @Override - public int compare(Employee o1, Employee o2) { - return -(int) (o1.getSalary() - o2.getSalary()); - } - }); - - - } - -} diff --git a/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java b/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java deleted file mode 100644 index d892223862..0000000000 --- a/core-java/src/test/java/org/baeldung/java/sorting/SetSort.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.baeldung.java.sorting; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.TreeSet; - -import org.junit.Before; -import org.junit.Test; - -public class SetSort { - - private HashSet integers; - private TreeSet employees; - - @Before - public void initData() { - - integers = new HashSet<>(); - integers.addAll(Arrays.asList(new Integer[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 })); - - employees = new TreeSet<>(); - - employees.addAll(Arrays.asList(new Employee[] { new Employee("John", 23, 5000), new Employee("Steve", 26, 6000), - new Employee("Frank", 33, 7000), new Employee("Earl", 43, 10000), new Employee("Jessica", 23, 4000), new Employee("Pearl", 33, 6000) })); - - } - - @Test - public void hashSetSortIntegers() { - - - - ArrayList list = new ArrayList(integers); - Collections.sort(list, (i1, i2) -> { - return i2 - i1; - }); - - - } - - @Test - public void treeSetEmployeeSorting() { - - ArrayList list = new ArrayList(employees); - Collections.sort(list, (e1, e2) -> { - return e2.getName().compareTo(e1.getName()); - }); - - } - -}