/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.Random ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void testeComList( int quantidade) {
long inicio
= System .
currentTimeMillis ( ) ;
for ( int i = 0 ; i < quantidade; i++ ) {
lista.add ( i) ;
}
long fim
= System .
currentTimeMillis ( ) ;
System .
out .
println ( "Shuffle: Tempo com " + quantidade
+ " elementos = " + ( fim
- inicio
) ) ; }
public static void testeComSet( int quantidade) {
Set< Integer> set = new LinkedHashSet<> ( ) ;
long inicio
= System .
currentTimeMillis ( ) ;
while ( set.size ( ) < quantidade) {
set.add ( rnd.nextInt ( quantidade) ) ;
}
long fim
= System .
currentTimeMillis ( ) ;
System .
out .
println ( "Set: Tempo com " + quantidade
+ " elementos = " + ( fim
- inicio
) ) ;
}
{
testeComList( 20 ) ;
testeComList( 20000 ) ;
testeComList( 200000 ) ;
testeComList( 20000000 ) ;
testeComSet( 20 ) ;
testeComSet( 20000 ) ;
testeComSet( 200000 ) ;
testeComSet( 20000000 ) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7Cglwcml2YXRlIHN0YXRpYyBSYW5kb20gcm5kID0gbmV3IFJhbmRvbSgpOwoJCglwdWJsaWMgc3RhdGljIHZvaWQgdGVzdGVDb21MaXN0KGludCBxdWFudGlkYWRlKXsKCQlMaXN0IGxpc3RhID0gbmV3IEFycmF5TGlzdChxdWFudGlkYWRlKTsKCQoJCWxvbmcgaW5pY2lvID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgkJCgkJZm9yIChpbnQgaSA9IDA7IGkgPCBxdWFudGlkYWRlOyBpKyspewoJCQlsaXN0YS5hZGQoaSk7CgkJfQoJCQoJCUNvbGxlY3Rpb25zLnNodWZmbGUobGlzdGEpOwoJCQoJCWxvbmcgZmltID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgkKCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNodWZmbGU6IFRlbXBvIGNvbSAiICsgcXVhbnRpZGFkZSArICIgZWxlbWVudG9zID0gIiArIChmaW0gLSBpbmljaW8pKTsJCgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0ZUNvbVNldChpbnQgcXVhbnRpZGFkZSl7CgkJCgkJU2V0PEludGVnZXI+IHNldCA9IG5ldyBMaW5rZWRIYXNoU2V0PD4oKTsKCQkKCQlsb25nIGluaWNpbyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoJCQoJCXdoaWxlIChzZXQuc2l6ZSgpIDwgcXVhbnRpZGFkZSkgewoJCQlzZXQuYWRkKHJuZC5uZXh0SW50KHF1YW50aWRhZGUpKTsKCQl9CgkJCgkJbG9uZyBmaW0gPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNldDogVGVtcG8gY29tICIgKyBxdWFudGlkYWRlICsgIiBlbGVtZW50b3MgPSAiICsgKGZpbSAtIGluaWNpbykpOwkKCgl9CgkKCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJCgkJdGVzdGVDb21MaXN0KDIwKTsKCQkKCQl0ZXN0ZUNvbUxpc3QoMjAwMDApOwoJCQoJCXRlc3RlQ29tTGlzdCgyMDAwMDApOwoJCQoJCXRlc3RlQ29tTGlzdCgyMDAwMDAwMCk7CgkJCgkJdGVzdGVDb21TZXQoMjApOwoJCQoJCXRlc3RlQ29tU2V0KDIwMDAwKTsKCQkKCQl0ZXN0ZUNvbVNldCgyMDAwMDApOwoJCQoJCXRlc3RlQ29tU2V0KDIwMDAwMDAwKTsKCQkKCX0KfQ==