Podczas tworzenia klas w Javie często znajduję siebie tworząc kolekcje na poziomie instancji, które z wyprzedzeniem będą bardzo małe - mniej niż 10 elementów w kolekcji. Ale nie znam liczby elementów z wyprzedzeniem, więc zazwyczaj wybieram kolekcję dynamiczną (ArrayList, Vector itd.).Używanie małych (1-10 elementów) kolekcji na poziomie instancji w Javie
class Foo
{
ArrayList<Bar> bars = new ArrayList<Bar>(10);
}
Część mnie wciąż dręczy mnie, że marnowanie zasobów na tak małe rozmiary jest skomplikowane. Czy istnieje lepszy sposób realizacji czegoś takiego? Czy to jest norma?
Uwaga, nie dostaję żadnych (zauważalnych) kar za wydajność ani nic w tym stylu. Po prostu zastanawiam się, czy nie ma lepszego sposobu na robienie rzeczy.
Obecne maszyny JVM optymalizują się w dużym stopniu w zakresie przydzielania obiektów, a kwestie związane z usuwaniem odpadów są prawie zawsze bezpodstawne. –