آرایه انجمنی

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از آرایهٔ انجمنی)

در علوم رایانه، آرایهٔ ربطی، نگاشت، یا دیکشنری به نوع داده انتزاعی گفته می‌شود که از کلکسیونی از جفت‌های (کلید، مقدار) تشکیل شده‌است، بطوری‌که هر کلید ممکن حداکثر یکبار در کلکسیون ظاهر می‌شود. دلیل این نامگذاری این است که در این نوع آرایه هر مقدار به صراحت به یک کلید «ربط» داده شده‌است (در انگلیسی: Associated) در حالیکه در نوع عادی آرایه، ربط دهی به صورت ضمنی انجام می‌شود؛ یعنی هر مقدار به‌طور ضمنی مرتبط با یک اندیس (در انگلیسی: Index) است و نیازی به ذخیرهٔ کلید (اندیس) وجود ندارد. به دلیل صریح بودن ربط دهی در این نوع آرایه، آن را آرایهٔ «ربطی» (به انگلیسی Associative Array) می‌نامند، که برخی آن را آرایهٔ انجمنی نیز ترجمه کرده‌اند.

عملیات مرتبط با این نوع داده عبارتند از:[۱][۲]

  • افزودن جفت به کلکسیون،
  • حذف جفت از کلکسیون،
  • تغییر مقدار جفت‌های موجود،
  • مراجعه به مقدار مرتبط با یک کلید خاص

مثال[ویرایش]

در زبان برنامه‌نویسی پایتون آرایه‌های انجمنی را می‌توان با قرار دادن جفت‌های key: value جدا شده با کاما در داخل آکلاد ایجاد کرد:[۳]

a = {'name': 'john', 'age': 28}

در زبان برنامه‌نویسی پی‌اچ‌پی آرایه‌های انجمنی را می‌توان به کمک دستور array یا دستور کوتاه array (با کمک کروشه) در زمان تعریف آرایه ثبت یا پس از تعریف آرایه کلیدهای جدید به آن اضافه کرد:

$a = array("name"=>"Masoud", "age"=>24);

$c = array();
$c["name"] = "Masoud";
$c["age"] = 24;

$b = ["name"=>"Masoud", "age"=>24];

$d = [];
$d["name"] = "Masoud";
$d["age"] = 24;

if($a == $b == $c == $d)
{
    if($a['name'] == $b['name'] == $c['name'] == $d['name'])
    {
        if($a['age'] == $b['age'] == $c['age'] == $d['age'])
        {
            print('$a, $b, $c and $d are equal');
        }
    }
}

در مثال بالا، پس از اجرای نمونه کد پی‌اچ‌پی، هر چهار متغیر a$ و b$ و c$ و d$ دارای مقادیر برابر خواهند بود و مقدار a, $b, $c and $d are equal$ چاپ خواهد شد.

پانویس[ویرایش]

  1. Goodrich, Michael T.; Tamassia, Roberto (2006), "9.1 The Map Abstract Data Type", Data Structures & Algorithms in Java (4th ed.), Wiley, pp. 368–371.
  2. Mehlhorn, Kurt; Sanders, Peter (2008), "4 Hash Tables and Associative Arrays", Algorithms and Data Structures: The Basic Toolbox, Springer, pp. 81–98.
  3. مستندات پایتون - انواع داده توکار - دیکشنری