آیا زمانی که متد compareTo () آنها صفر را برمی گرداند، دو شی همیشه برابر خواهند بود؟
آیا زمانی که متد compareTo () آنها صفر را برمی گرداند، دو شی همیشه برابر خواهند بود؟

تصویری: آیا زمانی که متد compareTo () آنها صفر را برمی گرداند، دو شی همیشه برابر خواهند بود؟

تصویری: آیا زمانی که متد compareTo () آنها صفر را برمی گرداند، دو شی همیشه برابر خواهند بود؟
تصویری: Was Fatima (ra) Murdered? Debunking a Prevalent Shia Belief: with Abdullah Al-Rabbat 2024, ممکن است
Anonim

آی تی است توصیه کرد که در مقایسه با فقط برمی گرداند 0، در صورت تماس با برابر است بر همان اشیاء خواهد شد برگشت درست است، واقعی: در مقایسه با (e2) == 0 همین را دارد مقدار بولی به صورت e1. برابر است (e2) برای هر e1 و e2 از کلاس C. توجه داشته باشید که null است نمونه ای از هیچ کلاسی نیست، و e.

علاوه بر این، آیا ممکن است برای مساوی () به false برگرداند حتی اگر محتویات دو شی یکسان باشد؟

4 پاسخ. در جاوا روش بولین عمومی برابر است ( هدف - شی obj) به ارث رسیده است هدف - شی . با این حال، اجرای روش همانطور که در تعریف شده است هدف - شی کلاس این است که برابر است روش خواهد شد بازگشت اگر و فقط اگر را دو شی در حال مقایسه هستند یکسان نمونه، مثال.

پس از آن، سوال این است که چرا compareTo () باید با متد برابر () در جاوا سازگار باشد؟ این به این دلیل است که رابط نقشه بر اساس تعریف شده است برابر است عملیات، اما یک نقشه تمام مقایسه های کلیدی را با استفاده از آن انجام می دهد در مقایسه با (یا مقایسه کنید) روش ، بنابراین دو کلید در نظر گرفته شده است برابر با این روش هستند، از نقطه نظر نقشه مرتب شده، برابر.

با در نظر گرفتن این موضوع، تفاوت بین روش == برابر () و compareTo () چیست؟

در مقایسه با : دو رشته را از نظر لغوی مقایسه می کند. برابر است : این رشته را با شی مشخص شده مقایسه می کند. در مقایسه با دو رشته را با کاراکترهایشان (در همان شاخص) مقایسه می کند و بر این اساس یک عدد صحیح (مثبت یا منفی) برمی گرداند. برابر () بررسی می کند که آیا دو شی یکسان هستند یا نه و یک Boolean برمی گرداند.

آیا می توانیم روش compareTo را نادیده بگیریم؟

نادیده گرفتن روش compareTo باید یک عدد صحیح منفی (معمولا -1) برگرداند، اگر شیء راه‌انداز فعلی کمتر از مقدار ارسال شده باشد یکی و عدد صحیح مثبت (معمولا 1+) اگر بزرگتر باشد و 0 اگر مساوی باشد. روش مقایسه با اگر شی ارسال شده دارای نوع ناسازگار یا تهی باشد، باید یک استثنا ایجاد کند.

توصیه شده: