Сортировка HahsMap

#java #sorting #hashmap

Вопрос:

Как эта программа сортирует массивы, когда Hashmap не отсортирован или не упорядочен ?

Эта программа печатает отсортированную карту из двух разных отсортированных массивов

 class A {
    
    // Function to merge arrays
    static void mergeArrays(int a[], int b[], int n, int m)
    {
    
        // Declaring a map.
        // using map as a inbuilt tool
        // to store elements in sorted order.
        Map<Integer,String> mp = new HashMap<Integer,String>();
    
        // Inserting values to a map.
        for(int i = 0; i < n; i  )
        {
            mp.put(a[i], "a");
        }
        for(int i = 0;i < m;i  )
        {
            mp.put(b[i], "a");
        }
    
        // Printing keys of the map.
        for (Entry<Integer, String> me : mp.entrySet())
        {
            System.out.print(me.getKey()   " ");
        }
    }
    
    
    public static void main (String[] args)
    {
        int a[] = {1,3,5,7}, b[] = {2, 4, 6, 8};
        int size = a.length;
        int size1 = b.length;
        
    
        mergeArrays(a, b, size, size1);
    }
}
 

Комментарии:

1. На картах есть порядок, но на этот порядок не стоит полагаться — любой порядок, который вы можете наблюдать, является чисто случайным. Поэтому ответ на вопрос «Как эта программа сортирует массивы […]» таков: это не так.


Ответ №1:

Если вы хотите увидеть другое поведение, попробуйте изменить свою начальную емкость и коэффициент загрузки. Что-то вроде следующего:

 Map<Integer,String> mp = new HashMap<Integer,String>(2,3.0f);
 

Вы можете прочитать о них здесь

Комментарии:

1. Или попробуйте использовать (скажем) 7-значные целые числа с существующей картой. Выберите целые числа, чтобы цифры выглядели достаточно «случайными» (не 1000001, 1000002 и т. Д.

2. Это сработало бы. Но я хотел показать разницу с тем же набором данных.