سؤال

وإذا كان لدي قائمة متصلة من الأشياء الموظف ...

وكل موظف لديه اسم، وحقول ID.

ولدي قائمة المكالمات قائمة متصلة ....

إذا أريد لمعرفة ما إذا كان يحتوي على قائمة موظف أفعل:

list.contains(someEmployeeObject)

وماذا عن إذا كنت تريد معرفة ما إذا كانت القائمة تحتوي موظف على أساس ID imployee ..

ودعونا نقول لدي الطريقة التالية:

public boolean containsEmployeeByID(int id)

وكيف يمكنني معرفة ما إذا كانت القائمة تحتوي على الكائن الموظف مع هوية المعلمة؟

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

المحلول

ومجرد السير في القائمة والبحث في المباريات. إذا كنت تفعل هذا في كثير من الأحيان وتغيير قائمة infreqently، بناء مؤشر خريطة أولا.

List<Employee> list = ...
for (Employee e : list)
   if (e.getID() == id)
      return true;
return false;

وقال ذلك، توفير الموظفين في قائمة متصلة ؟؟ ما مثال مشكلة غريبة ...

نصائح أخرى

وربما يجب أن تستخدم خريطة مع مفتاح يجري هوية وقيمة كونها اسم الموظف أو الكائن الموظف؟

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

وثمة خيار آخر هو خلق HashMap وبعد ذلك يمكنك استرداد موظفيك بواسطة Id بهم.

for (Employee empl : list) {
    map.put(empl.getId(), empl);
}

String idLookup = "1234";

Employee employee = map.get(idLookup);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top