في Java هناك فرق بين Iterator و Iterable؟


الاجابه 1:

أسماء الواجهات مناسبة تمامًا ، يجب أن تعطيك تلميحًا ، إن لم يكن الجواب المباشر بالفعل. الفئة التي تنفذ واجهة Iterable هي - ITERABLE.

لذلك يمكن تكرارها في هذه الفئة.

هذا على سبيل المثال يستخدم من قبل لكل حلقة:

for (عنصر العنصر: items) {System.out.println (item)؛ }

لن يعمل هذا الرمز إلا بشرط أن "العناصر" هي فئة تنفذ واجهة Iterable.

تحتوي واجهة Iterable على طريقة واحدة فقط:

مكرر مكرر ()؛

سيعود التكرار ، وسيتم استخدام التكرار داخليًا بواسطة JVM للتكرار على جسمك.

Iterator هو كائن يستخدم للتكرار على كائن آخر. مثل كائن مؤشر ذكي ، يقوم بتخزين الحالة (الحالية ، الأخيرة ، التالية ، hasNext ...).

لذلك يمكنك القول - إيتربل هي شجرة من الأجاص. التكرار هو الكمثرى. شجرة من الكمثرى "إرجاع الكمثرى". شجرة الكمثرى ليست كمثرى.

(ليس مثالاً مثالياً عليّ أن أعترف به ، لكن حسنًا ، أتمنى أن تحصل على الفكرة ؛-)

الكود المصدري عبر الإنترنت (OpenJdk):

Iterable - java.lang.Iterable (.java) - مصدر واجهة GrepCode

شفرة المصدر Iterator عبر الإنترنت (OpenJdk):

Iterator - java.util.Iterator (.java) - مصدر واجهة GrepCode


الاجابه 2:

شكرا على A2A

إذا قام شيء ما بتنفيذ "Iterable" ، فيمكنك استدعاء الأسلوب .iterator () على ذلك ، وقمت بتوفير كائن Iterator. يحدث هذا "تحت الأغطية" في حلقة.

Iterator هو مثيل كائن يتذكر المكان الذي يصل إليه في مجموعة من الأشياء. في كل مرة تسأل عنها ، سوف يعطيك الشيء التالي بالتتابع. سيخبرك أيضًا عند نفاد الأشياء.

نأمل أن يعيدك كائن Iterable مكررًا جديدًا في كل مرة. ثم يمكنك الحصول على عدة أجزاء من كود العميل التي تتكرر جميعها بسرعة خاصة بها.


الاجابه 3:

يمثل التكرار طريقة بسيطة للسماح للبعض بالقيام بالحلقة من خلال مجموعة من البيانات دون امتيازات التعيين (على الرغم من إمكانية الإزالة). إنها تتبع العنصر الحالي وأيضًا أين ستذهب بعد ذلك.

يمثل Iterable تمثيلًا بسيطًا لسلسلة من العناصر التي يمكن تكرارها. إنه يعطينا مجرد فكرة أنه يمكن تكرار مجموعة معينة ، على سبيل المثال ، يمكننا البدء من العنصر الأول والحصول على العنصر التالي ، ثم التالي وما إلى ذلك.


الاجابه 4:

يمثل التكرار طريقة بسيطة للسماح للبعض بالقيام بالحلقة من خلال مجموعة من البيانات دون امتيازات التعيين (على الرغم من إمكانية الإزالة). إنها تتبع العنصر الحالي وأيضًا أين ستذهب بعد ذلك.

يمثل Iterable تمثيلًا بسيطًا لسلسلة من العناصر التي يمكن تكرارها. إنه يعطينا مجرد فكرة أنه يمكن تكرار مجموعة معينة ، على سبيل المثال ، يمكننا البدء من العنصر الأول والحصول على العنصر التالي ، ثم التالي وما إلى ذلك.