جافا Hashmap التكرار: انظروا إلى قيمتين في آن واحد؟

StackOverflow https://stackoverflow.com/questions/1436268

سؤال

ولدي هذه الحلقة:

 for (Map.Entry<Integer, String> entry: collection.entrySet()) {

 }

وأود أن مقارنة entry واحدة المقبل بعد ذلك. كيف أفعل ذلك؟

هل كانت مفيدة؟

المحلول

وأنت تفعل ذلك على سابقتها.

Map.Entry<Integer, String> previous = null;
for (Map.Entry<Integer, String> entry : collection.entrySet()) {
  if (previous != null) {
    // compare entry to rpevious
  }
  previous = entry;
}

نصائح أخرى

وكما تعلمون حلقة على مدى يمكنك تعيين متغير يسمى oldEntry على سبيل المثال (تهيئة لاغية) واستخدام ذلك في بالطريقة التي تريدها.

 Map.Entry<Integer,String> oldEntry = null;
 for (Map.Entry<Integer, String> entry: collection.entrySet()) {
   if (oldEntry != null) doStuff(oldEntry, newEntry);
   oldEntry = entry;
 }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top