import java.util.* ;
import java.lang.* ;
import java.io.* ;
int year;
// constructor with arguments
this .title = title;
this .year = year;
}
return title;
}
public int getYear( ) {
return year;
}
// toString method used for printout the object
return "Title: \" " + title + "\" , year: " + year ;
}
public boolean equals
( Object o
) { return this .title .equals ( e.title ) && ( year == e.getYear ( ) ) ;
}
public int hashCode( ) {
return year;
}
}
class Operations {
LinkedList< Book> bookcase;
public Operations( ) {
bookcase = new LinkedList< Book> ( ) ;
}
public LinkedList< Book> createdListOfBooks( ) {
LinkedList< Book> bookcase = new LinkedList< Book> ( ) ;
for ( int n = 0 ; n < 1200000 ; n++ ) {
bookcase.
add ( new Book ( "Java" + n,
1990 + theGenerator.
nextInt ( 30 ) ) ) ; }
System .
out .
println ( "Quantity of elements in the collection: " + bookcase.
size ( ) ) ;
return bookcase;
}
public void timeOfAddList( int n, LinkedList< Book> bookcase) {
//Adding element at the collection
long begin
= System .
nanoTime ( ) ; bookcase.
add ( new Book ( "Java" + n,
1988 ) ) ;
//Displaying time of the operation
System .
out .
println ( "Adding element " + n
+ " at the collection has taken: " + ( end
- begin
) + "ns" ) ;
}
public void timeOfRemoveList( int n, LinkedList< Book> bookcase) {
//Removing element from the collection
long begin
= System .
nanoTime ( ) ; bookcase.remove ( n) ;
//Displaying time of the operation
System .
out .
println ( "Removing element no: " + n
+ " from the collection has taken: " + ( end
- begin
) + "ns" ) ;
}
public HashMap
< Integer , Book
> createdHashMap
( ) { for ( int n= 1 ; n< 1200000 ; n++ ) {
tempInt = n;
theMap.put ( tempInt, book) ;
}
//Using entrySet() to retrieve and display content of the map
// for(Map.Entry<Integer, String> entry :theMap.entrySet()){
// System.out.println("Object: <" + entry.getKey() + ", " + entry.getValue() + ">");
// }
// for(Map.Entry<Employee, SalaryParameters> entry : salariesParameters.entrySet()) {
// if (entry.getValue().baseSalary >= 5000){
// System.out.println("Salary of " + entry.getKey() + " equals " +
// entry.getValue());
// }
// }
System .
out .
println ( "Salary of Sarah Taylor equals: " + theMap.
get ( 9 ) ) ;
return theMap;
}
// System.out.println("Salary of Sarah Taylor equals: " + paymentParameters.get(worker1));
}
/* Name of the class has to be "Main" only if the class is public. */
class ValidateTimeOfProcessing
{
{
Operations Operate = new Operations( ) ;
LinkedList< Book> bookcase = Operate.createdListOfBooks ( ) ;
Operate.timeOfAddList ( 0 , bookcase) ;
Operate.timeOfAddList ( bookcase.size ( ) , bookcase) ;
Operate.timeOfRemoveList ( 1 , bookcase) ;
Operate.timeOfRemoveList ( bookcase.size ( ) - 1 , bookcase) ;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBCb29rewogICAgU3RyaW5nIHRpdGxlOwogICAgaW50IHllYXI7CgogICAgLy8gY29uc3RydWN0b3Igd2l0aCBhcmd1bWVudHMKICAgIHB1YmxpYyBCb29rKFN0cmluZyB0aXRsZSwgaW50IHllYXIpewogICAgICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKICAgICAgICB0aGlzLnllYXIgPSB5ZWFyOwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGl0bGUoKXsKICAgIAlyZXR1cm4gdGl0bGU7CiAgICB9CiAKICAgIHB1YmxpYyBpbnQgZ2V0WWVhcigpIHsKICAgICAgICByZXR1cm4geWVhcjsKICAgIH0KCiAgICAvLyB0b1N0cmluZyBtZXRob2QgdXNlZCBmb3IgcHJpbnRvdXQgdGhlIG9iamVjdAogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpewogICAgICAgIHJldHVybiAiVGl0bGU6IFwiIiArIHRpdGxlICsgIlwiLCB5ZWFyOiAiICsgeWVhciA7CiAgICB9CgogICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKXsKICAgICAgICBmaW5hbCBCb29rIGUgPSAoQm9vaykgbzsKICAgICAgICByZXR1cm4gdGhpcy50aXRsZS5lcXVhbHMoZS50aXRsZSkgJiYgKHllYXIgPT0gZS5nZXRZZWFyKCkpIDsKICAgIH0KCiAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CiAgICAJcmV0dXJuIHllYXI7CiAgICB9Cgp9CgpjbGFzcyBPcGVyYXRpb25zIHsKCUxpbmtlZExpc3Q8Qm9vaz4gYm9va2Nhc2U7CgoJcHVibGljIE9wZXJhdGlvbnMoKSB7CgkJYm9va2Nhc2UgPSBuZXcgTGlua2VkTGlzdDxCb29rPigpOwoJfQoKCXB1YmxpYyBMaW5rZWRMaXN0PEJvb2s+IGNyZWF0ZWRMaXN0T2ZCb29rcygpIHsKCQlSYW5kb20gdGhlR2VuZXJhdG9yID0gbmV3IFJhbmRvbSgpOwoJCUxpbmtlZExpc3Q8Qm9vaz4gYm9va2Nhc2UgPSBuZXcgTGlua2VkTGlzdDxCb29rPigpOwoKCQlmb3IoaW50IG4gPSAwOyBuIDwgMTIwMDAwMDsgbisrKSB7CgkJCWJvb2tjYXNlLmFkZChuZXcgQm9vaygiSmF2YSIgKyBuLCAxOTkwICsgdGhlR2VuZXJhdG9yLm5leHRJbnQoMzApKSk7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbigiUXVhbnRpdHkgb2YgZWxlbWVudHMgaW4gdGhlIGNvbGxlY3Rpb246ICIgKyBib29rY2FzZS5zaXplKCkpOwoJCgkJcmV0dXJuIGJvb2tjYXNlOwoJfQoJCglwdWJsaWMgdm9pZCB0aW1lT2ZBZGRMaXN0KGludCBuLCBMaW5rZWRMaXN0PEJvb2s+IGJvb2tjYXNlKSB7CgoJCS8vQWRkaW5nIGVsZW1lbnQgYXQgdGhlIGNvbGxlY3Rpb24KCQlsb25nIGJlZ2luID0gU3lzdGVtLm5hbm9UaW1lKCk7CgkJYm9va2Nhc2UuYWRkKG5ldyBCb29rKCJKYXZhIituLDE5ODgpKTsKCQlsb25nIGVuZCA9IFN5c3RlbS5uYW5vVGltZSgpOwoKCQkvL0Rpc3BsYXlpbmcgdGltZSBvZiB0aGUgb3BlcmF0aW9uCgkJU3lzdGVtLm91dC5wcmludGxuKCJBZGRpbmcgZWxlbWVudCAiICsgbiArICIgYXQgdGhlIGNvbGxlY3Rpb24gaGFzIHRha2VuOiAiICsgKGVuZCAtIGJlZ2luKSArICJucyIpOwoJCgl9CQoKCXB1YmxpYyB2b2lkIHRpbWVPZlJlbW92ZUxpc3QoaW50IG4sIExpbmtlZExpc3Q8Qm9vaz4gYm9va2Nhc2UpIHsKCgkJLy9SZW1vdmluZyBlbGVtZW50IGZyb20gdGhlIGNvbGxlY3Rpb24KCQlsb25nIGJlZ2luID0gU3lzdGVtLm5hbm9UaW1lKCk7CgkJYm9va2Nhc2UucmVtb3ZlKG4pOwoJCWxvbmcgZW5kID0gU3lzdGVtLm5hbm9UaW1lKCk7CgoJCS8vRGlzcGxheWluZyB0aW1lIG9mIHRoZSBvcGVyYXRpb24KCQlTeXN0ZW0ub3V0LnByaW50bG4oIlJlbW92aW5nIGVsZW1lbnQgbm86ICIgKyBuICsgIiBmcm9tIHRoZSBjb2xsZWN0aW9uIGhhcyB0YWtlbjogIiArIChlbmQgLSBiZWdpbikgKyAibnMiKTsKCQoJfQkKCgoJcHVibGljIEhhc2hNYXA8SW50ZWdlciwgQm9vaz4gY3JlYXRlZEhhc2hNYXAoKSB7CgkJSGFzaE1hcDxJbnRlZ2VyLCBCb29rPiB0aGVNYXAgPSBuZXcgSGFzaE1hcDxJbnRlZ2VyLCBCb29rPigpOwoJCQlJbnRlZ2VyIHRlbXBJbnQgPSAwOwoJCQlmb3IoaW50IG49MTsgbjwgMTIwMDAwMDsgbisrKSB7CQkJCQoJCQkJQm9vayBib29rID0gbmV3IEJvb2soIkphdmEiICsgbiwgbik7CgkJCQl0ZW1wSW50ID0gbjsKCQkJCXRoZU1hcC5wdXQodGVtcEludCwgYm9vayk7CgkJCX0KCgkJLy9Vc2luZyBlbnRyeVNldCgpIHRvIHJldHJpZXZlIGFuZCBkaXNwbGF5IGNvbnRlbnQgb2YgdGhlIG1hcAovLwkJZm9yKE1hcC5FbnRyeTxJbnRlZ2VyLCBTdHJpbmc+IGVudHJ5IDp0aGVNYXAuZW50cnlTZXQoKSl7Ci8vCQkJU3lzdGVtLm91dC5wcmludGxuKCJPYmplY3Q6IDwiICsgZW50cnkuZ2V0S2V5KCkgKyAiLCAiICsgZW50cnkuZ2V0VmFsdWUoKSArICI+Iik7Ci8vCQl9CgovLwkgICAgICAgIGZvcihNYXAuRW50cnk8RW1wbG95ZWUsIFNhbGFyeVBhcmFtZXRlcnM+IGVudHJ5IDogc2FsYXJpZXNQYXJhbWV0ZXJzLmVudHJ5U2V0KCkpIHsKLy8gICAgICAgIAkJaWYgKGVudHJ5LmdldFZhbHVlKCkuYmFzZVNhbGFyeSA+PSA1MDAwKXsKLy8gICAgICAgIAkJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2FsYXJ5IG9mICIgKyBlbnRyeS5nZXRLZXkoKSArICIgZXF1YWxzICIgKwogLy8gICAgICAgCSAgICAgICAgCSAgICAgICAgICAgICAgICBlbnRyeS5nZXRWYWx1ZSgpKTsKLy8gICAgICAgIAkJfQovLyAgICAgICAgCX0KCgoJICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNhbGFyeSBvZiBTYXJhaCBUYXlsb3IgZXF1YWxzOiAiICsgdGhlTWFwLmdldCg5KSk7CgoJCXJldHVybiB0aGVNYXA7CgoJfQoKLy8gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2FsYXJ5IG9mIFNhcmFoIFRheWxvciBlcXVhbHM6ICIgKyBwYXltZW50UGFyYW1ldGVycy5nZXQod29ya2VyMSkpOwoKCgp9CgoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIFZhbGlkYXRlVGltZU9mUHJvY2Vzc2luZwp7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KICAgIHsKICAgICAgICBPcGVyYXRpb25zIE9wZXJhdGUgPSBuZXcgT3BlcmF0aW9ucygpOwoJTGlua2VkTGlzdDxCb29rPiBib29rY2FzZSA9IE9wZXJhdGUuY3JlYXRlZExpc3RPZkJvb2tzKCk7CglPcGVyYXRlLnRpbWVPZkFkZExpc3QoMCwgYm9va2Nhc2UpOwoJT3BlcmF0ZS50aW1lT2ZBZGRMaXN0KGJvb2tjYXNlLnNpemUoKSwgYm9va2Nhc2UpOwoJT3BlcmF0ZS50aW1lT2ZSZW1vdmVMaXN0KDEsIGJvb2tjYXNlKTsKCU9wZXJhdGUudGltZU9mUmVtb3ZlTGlzdChib29rY2FzZS5zaXplKCktMSwgYm9va2Nhc2UpOwoKICAgIH0KfQ==