## The challenge

Given an array of integers as strings and numbers, return the sum of the array values as if all were numbers.

## The solution in Java code

Option 1 (using `stream`):

 ``````1 2 3 4 5 6 7 8 9 `````` ``````import java.util.List; public class MixedSum { public int sum(List mixed) { return mixed.stream().mapToInt(o -> Integer.parseInt(o.toString())).sum(); } } ``````

Option 2 (the harder way):

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 `````` ``````import java.util.List; public class MixedSum { public int sum(List mixed) { int sum = 0; for (Object element : mixed) { if (element instanceof Integer) { sum += (Integer) element; } else if (element instanceof String) { sum += Integer.parseInt( (String) element ); } } return sum; } } ``````

Option 3 (using `Objects`):

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 `````` ``````import java.util.List; public class MixedSum { public int sum(List mixed) { int x = 0; for(Object s: mixed){ x+=Integer.parseInt(s.toString()); } return x; } } ``````

## Test cases to validate our solution

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 `````` ``````import org.junit.Test; import static org.junit.Assert.assertEquals; import org.junit.runners.JUnit4; import java.util.Arrays; public class SolutionTest { MixedSum mixedSum = new MixedSum(); @Test public void test_1() { assertEquals(10, mixedSum.sum(Arrays.asList(5,"5"))); } @Test public void test_2() { assertEquals(22, mixedSum.sum(Arrays.asList(9, 3, "7", "3"))); } @Test public void test_3() { assertEquals(42, mixedSum.sum(Arrays.asList("5", "0", 9, 3, 2, 1, "9", 6, 7))); } @Test public void test_4() { assertEquals(41, mixedSum.sum(Arrays.asList("3", 6, 6, 0, "5", 8, 5, "6", 2, "0"))); } @Test public void test_5() { assertEquals(45, mixedSum.sum(Arrays.asList("1", "5", "8", 8, 9, 9, 2, "3"))); } @Test public void test_6() { assertEquals(41, mixedSum.sum(Arrays.asList("3", 6, 6, 0, "5", 8, 5, "6", 2, "0"))); } @Test public void test_7() { assertEquals(61, mixedSum.sum(Arrays.asList(8, 0, 0, 8, 5, 7, 2, 3, 7, 8, 6, 7))); } } ``````