دانستنی‌ها

چگونه عناصر یک آرایه را در جاوا بُر می‌زنیم

اگر بخواهید ترتیب قرار گرفتن عناصر یک آرایه را به صورت رندوم کنید و به اصطلاح یک آرایه را بُر بزنید چه راهی به ذهنتان می‌رسد؟

shuffle-array

احتمالا خیلی از افراد از ابتدا به کد زیر فکر می‌کنند.

public static int[] RandomizeArray(int[] array) {
  Random rgen = new Random(); // Random number generator
  for (int i = 0; i < array.length; i++) {
    int randomPosition = rgen.nextInt(array.length);
    int temp = array[i];
    array[i] = array[randomPosition];
    array[randomPosition] = temp;
  }
  return array;
}

در این کد به صورت دستی موقعیت هر عنصر از آرایه را تغییر می‌دهیم.

اما راه حل دوم آن استفاده از تابع Collection.shuffle هست که به شکل زیر از آن به سادگی استفاده می‌شود.

Integer[] array = new Integer[] { 1, 2, 3, 4 };
Collections.shuffle(Arrays.asList(array));

البته دقت کنید که در کد بالا از Integer به جای int استفاده شده و درواقع کد زیر کار نمی‌کند.

int[] array = new int[]{1, 2, 3, 4}; //does not work
Collections.shuffle(Arrays.asList(array));

چرا که Arrays.asList(array) مقدار Collection<int[]> را به جای Collection<Integer> برمی‌گرداند.

منابع:

http://stackoverflow.com/

http://www.computer-tips.it/

نوشته های مشابه

یک دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا