Алексей Черемисин, с позиции интерфейса разница только в том, что TreeMap гарантирует порядок, а HashMap нет. С позиции реализации, TreeMap - это сбалансированное дерево, соответственно время доступа к элементу O(log n), а HashMap - это хэш-таблица с приблизительно O(1).
Дмитрий Александров, чаще читайте новости. За исключение некоторых коммерческих функций Oracle JVM и OpenJDK давно уже идентичны. А начиная со следующего марта будут идентичны полностью.
Если вам нужен порядок в свалившемся хэшмапе, сделайте преобразование в TreeMap. Или, если вам нужно сохранить время произвольного доступа близкое к O(1), в LinkedHashMap.
Алексей Черемисин, я подразумеваю, что если порядок негарантирован, то рассчитывать на него не стоит даже в идеальных условиях. Не обязательно писать в HashMap в процессе сортировки, чтобы поиметь проблемы. Потеря порядка может произойти в любой момент времени. Это натурально игра в рулетку. И кстати, HashMap тоже не синхронизированный.
Дмитрий Александров, я вам сейчас две страшные вещи скажу. Во-первых, я в исходниках JVM и JIT-компилятора провожу немало времени. Как именно написаны GC я хорошо знаю. STW может возникнуть прямо посреди сортировки. Во-вторых, я точно знаю как изнутри устроен HashMap. Коллизии возникают. И даже без колизии возможна потеря порядка при записи каждого нового элемента.
Алексей Черемисин, я никогда не строю алгоритм в расчёте на негарантированное поведение или особенности реализации и очень стараюсь избегать недокументированных функций.
Алексей Черемисин, вы можете гарантировать, что GC не остановит поток прямо посреди сортировки и не начнёт уплотнение кучи? Или в промежутке между сортировкой и использованием данных. Или что при записи нового элемента не возникнет коллизия хэшей?
Алексей Черемисин, а автор вас, троллей, наслушается и начнёт сортировать HashMap'ы. Впрочем, сам виноват будет, когда столкнётся с непредсказуемым поведением программы.
Из документации: This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.
Atlllantis, если плеер поддерживает какой-либо из протоколов потокового вещания, то он по URL'у поймёт или в процессе согласования передачи с сервером.
DollyPapper, уровни модели - это абстракция, они ничего делать не могут. Когда вы передаёте данные в сокет, они проходят через код интерпретатора, код системных библиотек, код драйвера и код прошивки сетевого интерфейса. Ни один из них понятия не имеет что именно вы ему передаёте и не выполняет никаких преобразований, для низкоуровнего сетевого кода существует только один формат данных - байты. Как превращать ваши данные в байты можете знать только вы сами. Даже для того, чтобы преобразовать в последовательность байт обычную строку, необходимо знать её исходный формат, исходную кодировку и целевую кодировку, которую ожидает принимающая сторона.
Во-первых, если вы стоите перед выбором где хранить, то у вас есть вариант не хранить их в 1С? Во-вторых, понятие "синхронизация" подразумевает хранение и там, и там.