تعتبر لغة البرمجة Java واحدة من اللغات القوية والمستخدمة على نطاق واسع في تطوير البرمجيات. يبدو أن لديك صعوبات في تنفيذ الشيفرة التي قدمتها، وهذا أمر طبيعي لمن هو جديد في عالم Java. سأقوم بتوجيهك خطوة بخطوة من خلال الشيفرة وشرح كيفية إضافة وإزالة العناصر من قائمة محددة داخل فئة.
أولاً وقبل كل شيء، يجب عليك استخدام النص “List” بدلاً من “def” لتعريف نوع المتغير. في Java، نستخدم “List” لتحديد القوائم. لذلك، سيكون التعريف الصحيح لقائمتك كما يلي:
javaimport java.util.List;
public class ListPractice implements Testable {
List mylist = Arrays.asList(4, 5, 6);
/**
* Adds a set of elements to the mylist variable
*
* @param elts The elements to be added
*/
void addToList(List elts) {
mylist.addAll(elts);
}
@Override
void testMe() {
addToList(Arrays.asList(7, 8, 9));
assert mylist.equals(Arrays.asList(4, 5, 6, 7, 8, 9));
// يبدو أنك ترغب في التحقق هنا من قائمة كاملة، لكن الأفضل هو التحقق من جزء منها
assert mylist.subList(3, mylist.size()).equals(Arrays.asList(7, 8, 9));
}
}
يجب عليك استخدام ArrayList
أو LinkedList
أو أي نوع آخر من فئات تحقيق List
بدلاً من Arrays.asList
إذا كنت ترغب في السماح بإضافة وإزالة العناصر.
المزيد من المعلومات
بالطبع، دعنا نستمر في توضيح المزيد حول الشيفرة وكيف يمكنك تحسينها.
-
استخدام ArrayList:
قمت باستخدامArrays.asList
لإنشاء قائمة ثابتة، ولكن قد تحتاج إلى تحويلها إلى قائمة قابلة للتعديل. يمكنك استخدامArrayList
بدلاً من ذلك لتمكين عمليات إضافة وإزالة. هنا كيف يمكنك تحسينها:javaimport java.util.ArrayList; import java.util.List; public class ListPractice implements Testable { List
mylist = new ArrayList<>(List.of(4, 5, 6)); void addToList(List elts) { mylist.addAll(elts); } @Override void testMe() { addToList(List.of(7, 8, 9)); assert mylist.equals(List.of(4, 5, 6, 7, 8, 9)); assert mylist.subList(3, mylist.size()).equals(List.of(7, 8, 9)); } } -
تحسين الطريقة
addToList
:
الطريقةaddToList
التي كتبتها لديها خطأ. يجب عليك استخدامaddAll
بدلاً من+
لدمج القائمتين. إليك الشيفرة المحسنة:javavoid addToList(List
elts) { mylist.addAll(elts); } -
استخدام AssertJ لفحص القوائم:
يمكنك استخدام مكتبة مثل AssertJ لتسهيل كتابة التحققات. هذا يمكن أن يجعل الشيفرة أكثر وضوحًا ويسهل الصيانة. قد تحتاج إلى إضافة مستورد لها ومن ثم يمكنك استخدام:javaimport static org.assertj.core.api.Assertions.assertThat; // ... @Override void testMe() { addToList(List.of(7, 8, 9)); assertThat(mylist).containsExactly(4, 5, 6, 7, 8, 9); assertThat(mylist.subList(3, mylist.size())).containsExactly(7, 8, 9); }
هذا يعتبر أكثر وضوحًا وسهولة في قراءة الشيفرة.
أرجو أن تكون هذه الإضافات مفيدة. إذا كانت لديك أي أسئلة أو تحتاج إلى مزيد من التوضيح، فلا تتردد في طرحها.