- 1
- 2
- 3
- 4
- 5
@Override public int hashCode()
{
int hash = 7;
return hash;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+94
@Override public int hashCode()
{
int hash = 7;
return hash;
}
Ну это явно хит!
Т.е. [:||||||:]
А прикинь, случайное число в качестве хэша?
Получил поиск в HashMap за O(n).
fix: O(1)
именно О(n)
fixed
хеш один на всех -> в мапе не больше одного элемента -> константное время
в хешмапе итемы с одним хешем чейнятся, что значит O(n).
А, ну точно. Надо ж похвалиться, что вы типа знаете, как-то сразу не подумал... Sorry
Сортировка отработает правильно, поиск - тоже. Медленно, правда, искать будет.
>очевидность!
Как видно, для тебя это оказалось не очевидным.
А когда вы начали вещать о мемори-ликах, JVM и GC у меня сложилось вмечатление, что вы просто перечисляете знакомые слова.
А между тем, есть контейнеры, правда в стандартных библиотеках я их ни разу не видел, снижающие максимальную сложность поиска в хештаблице О(n/k) до О(log(n/k)) (k=размер хештаблицы=const) при условии правильно подобранной хешфункции или О(n) до О(log(n)) при неправильно подобранной хешфункции. А именно за счет сортировки колизиирующих элементов в одном элементе хештаблицы. То есть для таких контейнеров, даже если написать такую хешфункцию, как написал автор этого говнокода, то он все равно получает поиск О(log(n)), а не О(n).
Кстати, не видел я что-то в C# для Dictionary параметра размера хештаблицы k. Он там регулируется как-нибудь?
Можно поподробнее?
а вообще, я говорил не про стандартную библиотеку java, если ты не заметил
{
private Object[] elements;
private int size = 0;
private static final int DEFAULT_INITIAL_CAPACITY = 16;
public Stack()
{
elements = new Object[DEFAULT_INITIAL_CAPACITY];
}
public void push(Object e)
{
ensureCapacity();
elements[size++] = e;
}
public Object pop()
{
if (size == 0)
throw new EmptyStackException();
return elements[--size];
}
private void ensureCapacity()
{
if (elements.length == size)
elements = Arrays.copyOf(elements, 2 * size + 1);
}
}
Код компилится, но память течет... Тоже что ли херня?! Мож я просто не понимаю значения слова херня?! )))
ваш К.О.
http://gorod.tomsk.ru/uploads/31604/1236156756/50.jpg