Merge pull request #572 from ishwardas/master

initial pull request for java - join and split arrays and collections
This commit is contained in:
Alex Theedom 2016-08-02 18:31:13 +01:00 committed by GitHub
commit 8e203dd204
2 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package org.baeldung.java.arrays;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;
public class ArraysJoinAndSplitJUnitTest {
private final String[] sauces = {"Marinara", "Olive Oil"};
private final String[] cheeses = {"Mozzarella", "Feta", "Parmesan"};
private final String[] vegetables = {"Olives", "Spinach", "Green Peppers"};
@Test
public void givenThreeStringArrays_whenJoiningIntoOneStringArray_ShouldSucceed() throws Exception {
String[] toppings = new String[sauces.length + cheeses.length + vegetables.length];
System.arraycopy(sauces, 0, toppings, 0, sauces.length);
int AddedSoFar = sauces.length;
System.arraycopy(cheeses, 0, toppings, AddedSoFar, cheeses.length);
AddedSoFar += cheeses.length;
System.arraycopy(vegetables, 0, toppings, AddedSoFar, vegetables.length);
Assert.assertArrayEquals(toppings,
new String[] {"Marinara", "Olive Oil", "Mozzarella", "Feta",
"Parmesan", "Olives", "Spinach", "Green Peppers"} );
}
private final String[] customers = {"Jay", "Harry", "Ronnie", "Gary", "Ross"};
@Test
public void givenOneStringArray_whenSplittingInHalfTwoStringArrays_ShouldSucceed() throws Exception {
int ordersHalved = (customers.length / 2) + (customers.length % 2);
String[] driverOne = Arrays.copyOf(customers, ordersHalved);
String[] driverTwo = Arrays.copyOfRange(customers, ordersHalved, customers.length);
Assert.assertArrayEquals(driverOne, new String[] {"Jay", "Harry", "Ronnie"} );
Assert.assertArrayEquals(driverTwo, new String[] {"Gary", "Ross"} );
}
}

View File

@ -0,0 +1,74 @@
package org.baeldung.java.collections;
import java.util.ArrayList;
import org.junit.Assert;
import org.junit.Test;
public class CollectionsJoinAndSplitJUnitTest {
public ArrayList<String> sauces = new ArrayList<String>();
public ArrayList<String> cheeses = new ArrayList<String>();
public ArrayList<String> vegetables = new ArrayList<String>();
public ArrayList<ArrayList<String>> ingredients = new ArrayList<ArrayList<String>>();
public CollectionsJoinAndSplitJUnitTest() throws Exception {
whenGeneratingTestData_ShouldSucceed();
}
@Test
public void whenGeneratingTestData_ShouldSucceed() throws Exception {
sauces.clear();
sauces.add("Olive Oil");
sauces.add("Marinara");
cheeses.clear();
cheeses.add("Mozarella");
cheeses.add("Feta");
cheeses.add("Parmesan");
vegetables.clear();
vegetables.add("Olives");
vegetables.add("Spinach");
vegetables.add("Green Peppers");
ingredients.clear();
ingredients.add(sauces);
ingredients.add(cheeses);
ingredients.add(vegetables);
Assert.assertTrue(sauces.size() == 2);
Assert.assertTrue(cheeses.size() == 3);
Assert.assertTrue(vegetables.size() == 3);
Assert.assertTrue(ingredients.size() == 3);
}
@Test
public void givenThreeArrayLists_whenJoiningIntoOneArrayList_ShouldSucceed() throws Exception {
ArrayList<ArrayList<String>> toppings = new ArrayList<ArrayList<String>>();
toppings.add(sauces);
toppings.add(cheeses);
toppings.add(vegetables);
Assert.assertTrue(toppings.size() == 3);
Assert.assertTrue(toppings.contains(sauces));
Assert.assertTrue(toppings.contains(cheeses));
Assert.assertTrue(toppings.contains(vegetables));
}
@Test
public void givenOneArrayList_whenSplittingIntoTwoArrayLists_shouldSucceed() throws Exception {
ArrayList<ArrayList<String>> toppings = ingredients;
ArrayList<ArrayList<String>> removedToppings = new ArrayList<ArrayList<String>>();
removedToppings.add(toppings.remove(toppings.indexOf(vegetables)));
Assert.assertTrue(removedToppings.contains(vegetables));
Assert.assertTrue(removedToppings.size() == 1);
Assert.assertTrue(toppings.size() == 2);
Assert.assertTrue(toppings.contains(sauces));
Assert.assertTrue(toppings.contains(cheeses));
}
}