Skip to content

Commit 5ec8196

Browse files
* docs: kata description * feat: kata/average-of-even-numbers-in-a-list --------- Co-authored-by: ParanoidUser <[email protected]>
1 parent f4cf148 commit 5ec8196

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# [Average of Even Numbers in a List](https://www.codewars.com/kata/average-of-even-numbers-in-a-list "https://www.codewars.com/kata/685a10c62388b0a0220ac88d")
2+
3+
Your task is to write a method that calculates the average of all even numbers in a list of integers.
4+
If the list contains no even numbers, return `0.0`.
5+
6+
---
7+
8+
## Function Signature
9+
10+
```java
11+
public static double averageOfEvens(List<Integer> numbers)
12+
```
13+
14+
---
15+
16+
## Input
17+
18+
A `List<Integer>` of length n (1 ≤ n ≤ 100,000)
19+
20+
---
21+
22+
## Output
23+
24+
A `double` representing the average of all even numbers in the list.
25+
If there are no even numbers, return `0.0`
26+
27+
---
28+
29+
## Examples
30+
31+
```java
32+
averageOfEvens(Arrays.asList(2, 4,6,8,10))=>6.0
33+
34+
averageOfEvens(Arrays.asList(1, 3,5))=>0.0
35+
36+
averageOfEvens(Arrays.asList(10, 15,20,25,30))=>20.0
37+
38+
averageOfEvens(Arrays.asList(0, 0,0))=>0.0
39+
40+
averageOfEvens(Arrays.asList(1, -4,-6,3))=>-5.0
41+
```
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import java.util.List;
2+
3+
interface EvenAverage {
4+
static double averageOfEvens(List<Integer> numbers) {
5+
return numbers.stream().mapToInt(i -> i).filter(i -> i % 2 == 0).average().orElse(0);
6+
}
7+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import static org.junit.jupiter.api.Assertions.assertEquals;
2+
3+
import java.util.List;
4+
import org.junit.jupiter.api.Test;
5+
6+
class SolutionTest {
7+
@Test
8+
void sample() {
9+
assertEquals(6.0, EvenAverage.averageOfEvens(List.of(2, 4, 6, 8, 10)));
10+
assertEquals(0.0, EvenAverage.averageOfEvens(List.of(1, 3, 5)));
11+
assertEquals(20.0, EvenAverage.averageOfEvens(List.of(10, 15, 20, 25, 30)));
12+
assertEquals(0.0, EvenAverage.averageOfEvens(List.of(0, 0, 0)));
13+
assertEquals(-5.0, EvenAverage.averageOfEvens(List.of(1, -4, -6, 3)));
14+
}
15+
}

kata/beta/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
- [02. Sum of array's elements](02-sum-of-arrays-elements "58f475735e78fde4a2000011")
22
- [¡Arrest the cardiac!](arrest-the-cardiac "660af4c7fe0da42cceb4af56")
3+
- [Average of Even Numbers in a List](average-of-even-numbers-in-a-list "685a10c62388b0a0220ac88d")
34
- [Bad Collection?](bad-collection "5e36fb0ffc5a260001e65a5b")
45
- [Basic Arabic-To-Roman Numerals (1 to 999)](basic-arabic-to-roman-numerals-1-to-999 "5580d8dc8e4ee9ffcb000050")
56
- [Beginner friendly: remove the letter o](beginner-friendly-remove-the-letter-o "58d3dd53b0fe8c9ac10000b3")

0 commit comments

Comments
 (0)