44import java .util .Arrays ;
55import java .util .Collections ;
66import java .util .List ;
7+ import java .util .concurrent .atomic .AtomicInteger ;
8+ import java .util .function .Function ;
79import java .util .stream .Collectors ;
810import java .util .stream .Stream ;
911
1012public 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