2012-04-08 1 views

Odpowiedz

4

Według API nie wydaje się to możliwe. Jednym z wyjaśnień jest to, że zmienne kolekcje są zdecydowanie odradzane, a niezmienne kolekcje nie potrzebują domyślnej informacji o pojemności, ponieważ liczba elementów musi być znana w czasie budowy.

Należy jednak pamiętać, że Scala domyślnie używa domyślnych informacji o pojemności, jeśli tworzy się kolekcję (w tym zmienną i niezmienną HashMap) za pomocą wielu dostępnych metod gromadzenia danych. Na przykład, jeśli wywołasz map na HashMap, będzie używać map zdefiniowane na TraversableLike (odtworzone poniżej), a można zobaczyć, że zapewnia "wskazówkę wielkości" do budowniczego, który zapewnia te informacje o pojemności.

def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = { 
    val b = bf(repr) 
    b.sizeHint(this) 
    for (x <- this) b += f(x) 
    b.result 
} 
+1

Dziękuję .. ale moje wymaganie było działać dla java jak HashMap, gdzie mogę określić loadfactor itp. W momencie tworzenia (następnie zmodyfikowałem mój algorytm na bardziej funkcjonalny styl .. ale byłem zainteresowany bezpośredni odpowiednik nie mniej :) .. Mimo to akceptuję odpowiedź –