خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه استفاده از ساختار داده Java TreeMap

TreeMap یک ساختار داده کارآمد در حافظه است که به خوبی با مقدار ناشناخته داده کار می کند. با نحوه استفاده از این کلاس در جاوا آشنا شوید.

کلاس Java TreeMap داده ها را در یک ساختار درختی با استفاده از رابط نقشه ذخیره می کند. این کلاس کلاس AbstractMap را گسترش می دهد و TreeMap مانند کلاس والد خود دارای دو پارامتر نوع است. یکی از پارامترهای نوع آن، کلیدهای موجود در TreeMap را نشان می دهد، در حالی که دیگری نشان دهنده مقادیر است.

ساختار داده TreeMap جفت های کلید-مقدار را ذخیره می کند و به شما امکان می دهد عملیات CRUD را روی این داده ها انجام دهید.

نحوه ایجاد نقشه درختی در جاوا

کلاس TreeMap دارای چهار سازنده است که می توانید از آنها برای ایجاد یک شی TreeMap جدید استفاده کنید. سازنده پیش‌فرض محبوب‌ترین سازنده در بین این چهار است. این سازنده هیچ آرگومان نمی گیرد و یک نقشه درختی خالی تولید می کند.

// Create a new tree map
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

کد بالا یک نقشه درختی خالی به نام مشتریان ایجاد می کند.

پر کردن ساختار داده TreeMap

متد put() یک آیتم را به یک شی TreeMap اضافه می کند. دو آرگومان نیاز دارد – یک کلید و مقدار آن. شما می توانید موارد را به هر ترتیب تصادفی به نقشه درختی اضافه کنید و ساختار داده آنها را به ترتیب صعودی و با توجه به کلیدهایشان ذخیره می کند.

// Populate a tree map
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

کد بالا پنج مشتری را به ترتیب تصادفی به نقشه درخت مشتریان اضافه می کند.

مطلب مرتبط:   نحوه ایجاد پاور آپ و کلکسیون در گودو

مشاهده اقلام در نقشه درختی

کلاس TreeMap داده های خود را در یک شی ذخیره می کند. بنابراین، برای دیدن همه موارد در یک نقشه درختی، می‌توانید به سادگی شی نقشه درختی را در کنسول چاپ کنید:

// View all tree map items as an object
System.out.println(customers);

کد بالا خروجی زیر را در کنسول چاپ می کند:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

توجه داشته باشید که شیء بالا موارد را به صورت صعودی نمایش می دهد. همچنین می توانید هر مورد و کلید مربوط به آن را با استفاده از یک حلقه جاوا برای مشاهده کنید.

// View all items with an iterator
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

کد بالا خروجی زیر را در کنسول چاپ می کند:

Key: 101 Value: Kim Brown
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

به روز رسانی موارد در نقشه درختی

کلاس TreeMap به شما این امکان را می دهد که با استفاده از متد ()replace یک آیتم موجود را به روز کنید. دو روش جایگزین وجود دارد. روش اول یک کلید موجود و مقدار جدیدی را می گیرد که می خواهید کلید موجود را به آن نگاشت کنید.

// Replace existing value
customers.replace(101,"Kim Smith");
System.out.println(customers);

کد بالا شی زیر را در کنسول چاپ می کند:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

همانطور که می بینید کیم براون اکنون کیم اسمیت است. متد جایگزین () دوم یک کلید موجود، مقدار فعلی کلید و مقدار جدیدی را که می‌خواهید به کلید نگاشت کنید، می‌گیرد.

مطلب مرتبط:   افکت های پاپ آپ را به برنامه React.js خود اضافه کنید

// Replace existing value
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

کد بالا شی زیر را در کنسول چاپ می کند:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

در شیء بالا میشل نوح جایگزین جیم رایلی می شود.

حذف موارد از TreeMap

اگر می خواهید یک آیتم را از نقشه درختی حذف کنید، متد remove() تنها گزینه شماست. کلید مربوط به موردی را که می خواهید حذف کنید را می گیرد و مقدار حذف شده را برمی گرداند.

// Remove an item
customers.remove(104);
System.out.println(customers);

با اجرای کد بالا، شیء زیر در کنسول چاپ می شود:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

این کلاس جاوا همچنین دارای یک متد clear() است که به شما امکان می دهد تمام موارد موجود در نقشه درختی را حذف کنید.

TreeMap در مقابل کلاس جاوا HashMap

TreeMap و HashMap دو تا از محبوب‌ترین کلاس‌های نقشه جاوا هستند. هر دو کلاس AbstractMap را گسترش می دهند. این رابطه به کلاس های TreeMap و HashMap دسترسی به بسیاری از توابع مشابه را می دهد.

با این حال، تفاوت های قابل توجهی بین این دو کلاس نقشه وجود دارد. TreeMap از پیاده‌سازی درخت قرمز-مشکی رابط Map استفاده می‌کند، در حالی که HashMap از جدول هش استفاده می‌کند. HashMap به شما امکان می دهد یک کلید تهی را ذخیره کنید، در حالی که TreeMap این کار را نمی کند. در نهایت، HashMap سریعتر از TreeMap است. سرعت الگوریتمی اولی O(1) است در حالی که سرعت دومی O(log(n)) است.