"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحويل int[] إلى Integer[] لاستخدامه كمفاتيح خريطة في Java؟

كيفية تحويل int[] إلى Integer[] لاستخدامه كمفاتيح خريطة في Java؟

تم النشر بتاريخ 2024-11-03
تصفح:628

How to Convert int[] to Integer[] for Use as Map Keys in Java?

تحويل int[] إلى عدد صحيح [] لمفاتيح الخريطة في Java: دليل شامل

في Java، تتطلب مفاتيح الخريطة المساواة المرجعية، وهو ما لا يمكن تحقيقه مع أنواع بدائية مثل int[]. عند العمل مع مصفوفات int[] والحاجة إلى استخدامها كمفاتيح في الخريطة، فمن الضروري تحويلها إلى نوع كائن مناسب. دعنا نستكشف الخيارات المختلفة لهذا التحويل.

الطريقة الأولى: Arrays.stream().boxed().toArray()

قدم Java 8 طريقة مختصرة لتحويل int[] إلى عدد صحيح[ ] باستخدام واجهة برمجة تطبيقات الدفق:

int[] data = {1,2,3,4,5,6,7,8,9,10};

Integer[] primitiveToBoxed = Arrays
        .stream(data)
        .boxed()
        .toArray(Integer[]::new);

الطريقة الثانية: IntStream.of().boxed().toArray()

طريقة مماثلة باستخدام IntStream:

Integer[] primitiveToBoxed = IntStream
        .of(data)
        .boxed()
        .toArray(Integer[]::new);

اعتبارات لمفاتيح الخريطة

على الرغم من أن العدد الصحيح[] يمكن أن يكون بمثابة مفتاح، إلا أنه قد لا يكون مثاليًا بسبب:

  • التحميل الزائد: يقوم عدد صحيح بتخزين القيم مؤقتًا بين -128 إلى 127، مما يؤدي إلى تصادمات محتملة في مجموعات بيانات أكبر.
  • أعباء الأداء: عدد صحيح[] ينشئ عددًا صحيحًا جديدًا كائنات لكل قيمة int، مع تقديم حمل إضافي.

الخيارات البديلة

للحصول على أداء أفضل وتفرد المفتاح، فكر في استخدام:

  • مخصص الكائنات: قم بإنشاء فئة مخصصة تتضمن int[] وتنفيذ hashCode() وequals() للبحث الفعال.
  • Longs: بما أن القيم الطويلة يمكن أن تمثل أعدادًا صحيحة، فيمكنها ذلك يمكن استخدامها كمفاتيح في الخرائط بأداء أفضل من Integer[].
  • المكتبات الخارجية: ابحث في مكتبة مجموعات Apache Commons أو Google Guava عن المجموعات المتخصصة التي تتعامل مع الأنواع البدائية بطريقة فعالة.

تذكر أن أفضل نهج يعتمد على حجم مجموعة البيانات ومتطلبات الأداء. يمكّنك اختيار التقنية المناسبة من تتبع تكرار مجموعات int[] في مجموعة البيانات الخاصة بك بكفاءة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3