hashCode Map/List

hashCode Map/List
GE
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 10 lat
  • Postów:65
0

Ktory z przykladow jest bardziej odpowiedni, ten z uzyciem mapy czy listy. Jak dla mnie wybor powinien byc uzalezniony od wielkosci listy/ mapy -> przy duzych mapa a przy malych lista?

Kopiuj
public class App {

    public static void main(String[] args) {
        
        HashMap<Integer, Word> map = new HashMap<Integer, Word>();

        Word word1 = new Word("kot", "chat", Kind.le);
        Word word2 = new Word("pies", "chien", Kind.le);
        Word word3 = new Word("koń", "cheval", Kind.le);
        
        map.put(word1.hashCode(), word1);
        map.put(word2.hashCode(), word2);
        map.put(word3.hashCode(), word3);
        
for (Entry<Integer, Word> entry : map.entrySet()) {
    System.out.println(entry.getValue().getId());
}        
//        System.out.println(map);
        
        System.out.println(map.containsKey(word2.hashCode()));
        
    
    List<Word> lista = new ArrayList<Word>();
    lista.add(word1);
    lista.add(word2);
    lista.add(word3);
    System.out.println(lista.contains(word2));
    
    }

}
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 17 godzin
  • Lokalizacja:Kraków
  • Postów:1694
0

Jeżeli nie musisz przechowywać obiektu i powiązanego z nim klucza tak jak w tym przypadku to użyj Listy.

Shalom
Lista żeby sprawdzać contains()? Poważnie? O(n) zamiast O(logn) dla TreeSet i O(1) dla HashSet? Doskonały pomysł...
szweszwe
@Shalom bardzo przepraszam. Zarówno Ciebie jak i autora tematu.
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Że tak spytam: WTF? Co to niby jest? Czemu nie zrobiłeś zwyczajnie

Kopiuj
Set<Word>

Tylko jakieś cuda na kiju robisz. Szczególnie że hashCode() NIE JEST unikalny więc pewnie połowa twoich słów nie załapie sie do mapy...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.