juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2010-03-09 03:36 pm

а вот ещё джавный прикол

Беру строку (json), строю объект, потом обратно в строку превращаю - получается строка да не та. Меняет местами два атрибута. Если ещё раз применить - меняет обратно. Инверсия типа. Ну в принципе-то, теоретически-то, всё равно; но для тестов - pain in the ass.

Но откуда такая фигня? А вот откуда: это у меня джава-то маразматическая, 1.4 ME, там hashmap нету, а есть hashtable; но не уверен и насчёт hashmap уже. Короче, атрибуты сложены в hashtable, по именам. Т.к. hashtable, то номер слота определяется хашкодом атрибута (строка), по модулю размера. Первые два атрибута имеют одинаковый хашкод (по модулю размера таблицы, естественно). А так как каждый слот - (недавно изобретенный китайцами) linkedlist, то, понятное дело, добавляем в голову. А потом, когда листаем, то берём с головы ж. Ну и это, порядок меняется на обратный.

Ну как решить конкретно мою задачу понятно (инвариант должен быть инвариантен!), но в целом-то смешно, правда ведь!

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting