مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

آموزش تولید اعداد تصادفی یکتا در جاوا با UUID به زبان ساده

چگونه در جاوا اعداد تصادفی یکتا ایجاد کنیم ؟ گاهی در برنامه نویسی حالتی پیش می آید که ما یک لیست بسیار طولانی داریم و می خواهیم که هیچ کدام از آنها نام تکراری نداشته باشند. برای مثال حالتی را تصور کنید که در یک سایت فایل های متعددی در یک قسمت ارسال می شوند و ما می خواهیم آنها را طوری نامگذاری کنیم که نام آنها تکراری نباشد. یا حالتی باشد که برای هر کاربر یک شناسه یکتا در کل دیتابیس داشته باشیم. اگر برای یک جدول باشد می توان از اعداد پشت سرهم استفاده کرد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

ولی این روش روش خوبی نیست چون می دانیم که یک توالی از اعداد به عنوان شناسه در نظر گرفته شده است. حال اگر بخواهیم هرکدام از شناسه ها به صورت شبه تصادفی باشند که نتوان به راحتی آن را حدس زد چه باید کرد. در زبان جاوا برای حل این مشکل در پکیج java.util کلاسی وجود دارد که UUID نام دارد که مخفف Universally unique identifier می باشد. این کلاس می تواند مقادیر تصادفی تولید کند که با احتمال بسیار ناچیزی مقدار تولید شده تکراری خواهد بود البته چون امکان تولید مقدار تکراری احتمالی نزدیک به صفر است می توان گفت که این کلاس مقدار یکتا تولید می کند برای استفاده از این کلاس باید مانند مثال زیر عمل کنیم:

import java.util.UUID;
public class HelloWorld{

     public static void main(String []args){
         UUID id=UUID.randomUUID();
        System.out.println(id.toString());
     }
}

خروجی کد بالا به شکل زیر خواهد بود که هر بار شما این برنامه را اجرا کنید عددی جدید به عنوان خروجی خواهد داد.

78ca74e7-e713-4665-924b-b042931946b4

نام کلاسی که همین کار را در زبان سی شارپ انجام می دهدGUID نام دارد. Itpro باشید

نویسنده: مهدی عادلی فر

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.


مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات