fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12.  
  13. int count = 10_000; // 1_000 100_000
  14.  
  15. Integer[] integers = new Integer[ count ];
  16. for ( int i = 0 ; i < count ; i++ ) {
  17. integers[ i ] = Integer.valueOf( i );
  18. // System.out.println( integers[ i ] );
  19. }
  20. // System.out.println( Arrays.asList( integers ) );
  21.  
  22. // First, convert using the old-fashioned way.
  23. long oldStart = System.nanoTime();
  24. int[] ints = new int[ count ];
  25. for ( int i = 0 ; i < integers.length ; i++ ) {
  26. ints[ i ] = ( null == integers[ i ] ) ? 0 : integers[ i ]; // Auto-boxing converts the object `Integer` to primitive `int`.
  27. // System.out.println( ints[ i ] );
  28. }
  29. long oldElapsed = ( System.nanoTime() - oldStart );
  30.  
  31. // Second, convert using modern Streams.
  32. long newStart = System.nanoTime();
  33. int[] intsStreamed = Arrays.stream( integers ).mapToInt( i -> i != null ? i : 0 ).toArray();
  34. long newElapsed = ( System.nanoTime() - newStart );
  35. // System.out.println( intsStreamed[ 0 ] ); // Check first.
  36. // System.out.println( intsStreamed[ count - 1 ] ); // Check last.
  37.  
  38. System.out.println( "oldElapsed: " + oldElapsed );
  39. System.out.println( "newElapsed: " + newElapsed );
  40.  
  41. }
  42. }
Success #stdin #stdout 0.24s 36500KB
stdin
Standard input is empty
stdout
oldElapsed: 4397424
newElapsed: 158718022