English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
قابلة للصفحة java لArrayList
مقدمة
تفاعل النظام مع النظام، عادةً يكون في شكل واجهة. افترض أن النظام B يقدم واجهة استعلام جماعية، تقتصر على استعلام 50 سجلاً مرة واحدة، ولكننا نحتاج إلى استعلام 500 سجلاً، في هذه الحالة يمكننا تقسيم هذه البيانات إلى 500 سجلاً وتنفيذ عمليات تقسيم 10 مرات لاستدعاء واجهة الاستعلام الجماعية في النظام B.
إذا كان واجهة الاستعلام في النظام B تستخدم List كمعامل الدخول، فإنه يمكن استخدام method subList من ArrayList للتعامل مع الاستدعاءات المتعددة.
الكود
تعريف method sublist:
List<E> subList(int fromIndex, int toIndex);
فمن الضروري فقط حساب fromIndex و toIndex بشكل دقيق.
إعداد البيانات
public class TestArrayList { public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L}); } }
algoritme alqabla
import java.util.Arrays; import java.util.List; public class TestArrayList { private static final Integer PAGE_SIZE = 3; public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L,8L}); // عدد السجلات الإجمالي Integer totalCount = datas.size(); // عدد المرات التي سيتم معالجتها Integer requestCount = totalCount / PAGE_SIZE; للدورة for (int i = 0; i <= requestCount; i++) { Integer fromIndex = i * PAGE_SIZE; // إذا كان إجمالي الأعداد أقل من PAGE_SIZE، لمنع تجاوز الحدود للعدد، يستخدم toIndex إجمالي الأعداد. int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE); List<Long> subList = datas.subList(fromIndex, toIndex); System.out.println(subList); // عند عدم وجود صفحات كافية أو عند تساوي إجمالي الأعداد للصفحة الواحدة، يمكن التوقف عن معالجة الدورة for. إذا (toIndex == totalCount) { تحطم; } } } }
سيناريو الاختبار
1- إجمالي الأعداد أقل من الصفحة الواحدة.
2- إجمالي الأعداد يساوي الصفحة الواحدة.
3- إجمالي الأعداد تفوق الصفحة الواحدة.
يمكن لمثل هذه الحالات الثلاث أن تمر بشكل طبيعي.
شكرًا على القراءة، آمل أن تساعدكم، شكرًا لدعمكم للموقع!