Skip to content

Commit 937dad2

Browse files
committed
lesson 12 util.minValue
исправление ошибок
1 parent 0c220c1 commit 937dad2

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

src/com/urise/webapp/util/minValue.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
import java.util.Arrays;
55
import java.util.Collections;
66
import java.util.List;
7+
import java.util.concurrent.atomic.AtomicInteger;
8+
import java.util.function.Function;
79
import java.util.stream.Collectors;
810
import java.util.stream.Stream;
911

1012
public class minValue {
1113
public static void main(String[] args) {
1214
List<Integer> values = new ArrayList<>();
1315
for (int i = 1; i < 10; i++) {
14-
values.add((int) (Math.random()*10));
15-
//values.add(i);
16-
}
17-
16+
values.add((int) (Math.random() * 10));
17+
}
1818
printStream(values.stream(), "Source data");
1919
System.out.println("Sum of elements =" + values.stream().reduce((x1, x2) -> x1 + x2).get());
2020
System.out.println("Min number = " + minValue(values.toArray(new Integer[9])));
@@ -26,18 +26,18 @@ public static void main(String[] args) {
2626
private static void printStream(Stream stream, String title) {
2727
System.out.println("------" + title + "------");
2828
stream.forEach(System.out::println);
29-
System.out.println("------------");
29+
System.out.println("-------------------------");
3030
}
3131

3232
public static int minValue(Integer[] values) {
33-
List<Integer> list = Arrays.stream(values).distinct().sorted(Collections.reverseOrder()).collect(Collectors.toList());
34-
int result = 0;
35-
for (Integer i = 0; i < list.size(); i++) {
36-
result += list.get(i) * Math.pow(10, i);
37-
}
38-
return result;
39-
}
33+
AtomicInteger x = new AtomicInteger();
34+
return (int) Arrays.stream(values)
35+
.distinct()
36+
.sorted(Collections.reverseOrder())
37+
.map((Function<Integer, Object>) elem -> elem * (int) Math.pow(10, x.getAndIncrement()))
38+
.reduce((z, y) -> (Integer) z + (Integer) y).orElse(0);
4039

40+
}
4141

4242
static List<Integer> oddOrEven(List<Integer> integers) {
4343
List<Integer> evenList = new ArrayList<>();
@@ -52,14 +52,14 @@ static List<Integer> oddOrEven(List<Integer> integers) {
5252
evenList.add(elem);
5353
}
5454
}
55-
return sum % 2 == 0 ? oddList:evenList;
55+
return sum % 2 == 0 ? oddList : evenList;
5656
}
5757

5858
static List<Integer> oddOrEvenOptional(List<Integer> integers) {
5959

6060
return integers.stream()
6161
.collect(Collectors.partitioningBy((x) -> x % 2 == 0))
62-
.get(integers.stream().reduce((x1, x2) -> x1 + x2).get() % 2 != 0);
62+
.getOrDefault(integers.stream().reduce((x1, x2) -> x1 + x2).get() % 2 != 0, new ArrayList<>());
6363
}
6464

6565
}

0 commit comments

Comments
 (0)