#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. Это сработало бы. Но я хотел показать разницу с тем же набором данных.