- import java.util.Arrays; 
- import java.util.stream.Collectors; 
-   
- class Main 
- { 
-     public static void-  main ( String[]-  args  )
 
-     { 
-         runTests(); 
-     } 
-   
-     public static void runTests() 
-     { 
-         //# Input from original post 
-         assertEquals( largestNumber( new int[]{ 3, 30, 34, 5, 9 } ), "9534330" ); 
-         //# Other tests from other comments 
-         assertEquals( largestNumber( new int[]{ 30, 301 } ), "30301" ); 
-         assertEquals( largestNumber( new int[]{ 3, 30, 34, 90, 9 } ), "99034330" ); 
-         //# Invalid assertion 
-         assertEquals( largestNumber( new int[]{ 1, 2, 3 } ), "123" ); 
-     } 
-   
-     public static String-  largestNumber ( int[]-  array  )
 
-     { 
-             .stream( array ) 
-             .sorted( Main::sort ) 
-             .collect( Collectors.joining() ); 
-         return result; 
-     } 
-   
-     { 
-     } 
-   
-     private static void-  assertEquals ( String-  actual,  String-  expected  )
 
-     { 
-         if ( !actual.equals( expected ) ) 
-         { 
-             System- . out- . println( "ERROR: Expected " +-  expected  + " but found " +-  actual  );
 
-         } 
-     } 
-   
- } 
				aW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CgpjbGFzcyBNYWluCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKCBTdHJpbmdbXSBhcmdzICkKICAgIHsKICAgICAgICBydW5UZXN0cygpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBydW5UZXN0cygpCiAgICB7CiAgICAgICAgLy8jIElucHV0IGZyb20gb3JpZ2luYWwgcG9zdAogICAgICAgIGFzc2VydEVxdWFscyggbGFyZ2VzdE51bWJlciggbmV3IGludFtdeyAzLCAzMCwgMzQsIDUsIDkgfSApLCAiOTUzNDMzMCIgKTsKICAgICAgICAvLyMgT3RoZXIgdGVzdHMgZnJvbSBvdGhlciBjb21tZW50cwogICAgICAgIGFzc2VydEVxdWFscyggbGFyZ2VzdE51bWJlciggbmV3IGludFtdeyAzMCwgMzAxIH0gKSwgIjMwMzAxIiApOwogICAgICAgIGFzc2VydEVxdWFscyggbGFyZ2VzdE51bWJlciggbmV3IGludFtdeyAzLCAzMCwgMzQsIDkwLCA5IH0gKSwgIjk5MDM0MzMwIiApOwogICAgICAgIC8vIyBJbnZhbGlkIGFzc2VydGlvbgogICAgICAgIGFzc2VydEVxdWFscyggbGFyZ2VzdE51bWJlciggbmV3IGludFtdeyAxLCAyLCAzIH0gKSwgIjEyMyIgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBsYXJnZXN0TnVtYmVyKCBpbnRbXSBhcnJheSApCiAgICB7CiAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEFycmF5cwogICAgICAgICAgICAuc3RyZWFtKCBhcnJheSApCiAgICAgICAgICAgIC5tYXBUb09iaiggU3RyaW5nOjp2YWx1ZU9mICkKICAgICAgICAgICAgLnNvcnRlZCggTWFpbjo6c29ydCApCiAgICAgICAgICAgIC5jb2xsZWN0KCBDb2xsZWN0b3JzLmpvaW5pbmcoKSApOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggcmVzdWx0ICk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGludCBzb3J0KCBTdHJpbmcgYSwgU3RyaW5nIGIgKQogICAgewogICAgICAgIFN0cmluZyB0MSA9IGEgKyBiOwogICAgICAgIFN0cmluZyB0MiA9IGIgKyBhOwogICAgICAgIHJldHVybiBJbnRlZ2VyLmNvbXBhcmUoIDAsIEludGVnZXIudmFsdWVPZiggdDEgKS5jb21wYXJlVG8oIEludGVnZXIucGFyc2VJbnQoIHQyICkgKSApOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYXNzZXJ0RXF1YWxzKCBTdHJpbmcgYWN0dWFsLCBTdHJpbmcgZXhwZWN0ZWQgKQogICAgewogICAgICAgIGlmICggIWFjdHVhbC5lcXVhbHMoIGV4cGVjdGVkICkgKQogICAgICAgIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiRVJST1I6IEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGZvdW5kICIgKyBhY3R1YWwgKTsKICAgICAgICB9CiAgICB9Cgp9