import java.util.*;
/* private */ Date publishDate
;
public boolean equals
(Object obj
) { if(obj == this) return true;
if(obj == null) return false;
if(!(obj
instanceof Book)) return false; if(!result.title.equals(this.title)) return false;
if(!result.publishDate.equals(this.publishDate)) return false;
return true;
}
public int hashCode() {
int hash = 1;
hash = hash * 31 + title.hashCode();
hash = hash * 31 + publishDate.hashCode();
return hash;
}
public int compareTo
(Book obj
) { return this.publishDate.compareTo(obj.publishDate);
}
result.title = this.title;
result.comment = this.comment;
result.
publishDate = (Date) this.
publishDate.
clone(); return result;
}
}
public class Main {
public static void main
(String[] args
) { book1.title = "本1";
book1.
publishDate = new Date(1); book2.title = "本1";
book2.
publishDate = new Date(1); boolean bool1 = book1.equals(book2);
book3.title = "本2";
book3.
publishDate = new Date(); book4.title = "本2";
boolean bool2 = book3.equals(book4);
// System.out.println(book4.publishDate);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgQm9vayBpbXBsZW1lbnRzIENvbXBhcmFibGU8Qm9vaz4sIENsb25lYWJsZSB7CiAvKiBwcml2YXRlICovIFN0cmluZyB0aXRsZTsKIC8qIHByaXZhdGUgKi8gRGF0ZSBwdWJsaXNoRGF0ZTsKIC8qIHByaXZhdGUgKi8gU3RyaW5nIGNvbW1lbnQ7CgogcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKICBpZihvYmogPT0gdGhpcykgcmV0dXJuIHRydWU7CiAgaWYob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKICBpZighKG9iaiBpbnN0YW5jZW9mIEJvb2spKSByZXR1cm4gZmFsc2U7CiAgQm9vayByZXN1bHQgPSAoQm9vaykgb2JqOwogIGlmKCFyZXN1bHQudGl0bGUuZXF1YWxzKHRoaXMudGl0bGUpKSByZXR1cm4gZmFsc2U7CiAgaWYoIXJlc3VsdC5wdWJsaXNoRGF0ZS5lcXVhbHModGhpcy5wdWJsaXNoRGF0ZSkpIHJldHVybiBmYWxzZTsKICByZXR1cm4gdHJ1ZTsKIH0KCiBwdWJsaWMgaW50IGhhc2hDb2RlKCkgewogIGludCBoYXNoID0gMTsKICBoYXNoID0gaGFzaCAqIDMxICsgdGl0bGUuaGFzaENvZGUoKTsKICBoYXNoID0gaGFzaCAqIDMxICsgcHVibGlzaERhdGUuaGFzaENvZGUoKTsKICByZXR1cm4gaGFzaDsKIH0KCiBwdWJsaWMgaW50IGNvbXBhcmVUbyhCb29rIG9iaikgewogIHJldHVybiB0aGlzLnB1Ymxpc2hEYXRlLmNvbXBhcmVUbyhvYmoucHVibGlzaERhdGUpOwogfQoKIHB1YmxpYyBCb29rIGNsb25lKCkgewogIEJvb2sgcmVzdWx0ID0gbmV3IEJvb2soKTsKICByZXN1bHQudGl0bGUgPSB0aGlzLnRpdGxlOwogIHJlc3VsdC5jb21tZW50ID0gdGhpcy5jb21tZW50OwogIHJlc3VsdC5wdWJsaXNoRGF0ZSA9IChEYXRlKSB0aGlzLnB1Ymxpc2hEYXRlLmNsb25lKCk7CiAgcmV0dXJuIHJlc3VsdDsKIH0KfQoKcHVibGljIGNsYXNzIE1haW4gewogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIEJvb2sgYm9vazEgPSBuZXcgQm9vaygpOwogICAgYm9vazEudGl0bGUgPSAi5pysMSI7CiAgICBib29rMS5wdWJsaXNoRGF0ZSA9IG5ldyBEYXRlKDEpOwogICAgQm9vayBib29rMiA9IG5ldyBCb29rKCk7CiAgICBib29rMi50aXRsZSA9ICLmnKwxIjsKICAgIGJvb2syLnB1Ymxpc2hEYXRlID0gbmV3IERhdGUoMSk7CiAgICBib29sZWFuIGJvb2wxID0gYm9vazEuZXF1YWxzKGJvb2syKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbihib29sMSk7CgogICAgQm9vayBib29rMyA9IG5ldyBCb29rKCk7CiAgICBib29rMy50aXRsZSA9ICLmnKwyIjsKICAgIGJvb2szLnB1Ymxpc2hEYXRlID0gbmV3IERhdGUoKTsKICAgIEJvb2sgYm9vazQgPSBuZXcgQm9vaygpOwogICAgYm9vazQudGl0bGUgPSAi5pysMiI7CiAgICBib29sZWFuIGJvb2wyID0gYm9vazMuZXF1YWxzKGJvb2s0KTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbihib29sMik7Ci8vICAgIFN5c3RlbS5vdXQucHJpbnRsbihib29rNC5wdWJsaXNoRGF0ZSk7CiAgfQp9