Czesc, mam do Was 2 pytania:
mam 2 HashMap<Integer, TestObj> o nazwach A i B. Jedna trzyma stare wartosci (A), druga nowe (B). I teraz jak zostanie utworzona nowa to musze sprawdzic czy ktorys z jej elementow istnieje w starej. TestObj jest to Entity. Wyglada mniej wiecej tak:
@Entity
public class TestObj implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String field1;
private int field2;
private String field3;
private Date field4;
//gettery i settery
}
pomyslalam ze najprosciej bedzie jesli te zaimplementuje hasCode dla tej klasy i w mapach A i B jako klucz bede trzymac wlasnie ten hashCode. Pozniej bedzie mi latwo sprawdzic czy jakies elementy A istnieja w B. W moim przypadku 2 obiekty klasy TestObj sa rowne jesli wszystkie ich pola (co do wartosci) sa rowne, wiec w tym przypadku powinny zwracac ten sam hashCode.
Mysle sobie jak poprawnie zaimplementowac to hashCode. Czy wystarczyloby mi cos takiego, np:
int hash = field1 + field2.hashCode() + field3 + field4.hashCode();
? Moim zdaniem tak, ale sie zastanawiam czy przy tak prostej implementacji moge sie jednak gdzies naciac?
Drugie pytanie. Tyczy sie plikow - zalozmy ze kopiuje sobie plik do katalogu tmp. Sprawdzajac jego lastModificationDate otrzymuje naprzemian: CreateDate, ModificationDate oraz AccessedDate (sprawdzalam poprzez prawy myszy - Properties). Czy ktos z Was wie moze dlaczego?
pzdr,
misty