القوائم هي المجموعة المتسلسلة المرتّبة في Java.
وعلى خلاف المصفوفات، يمكن أن يزداد حجم List ليتسع لأي عدد من العناصر.
أحد التطبيقات القياسية هو ArrayList، وهو مبني على مصفوفة قابلة لتغيير حجمها.
وتطبيق قياسي آخر هو الصنف LinkedList، وهو مبني على قائمة مترابطة مزدوجة.
قد تكون كائنات List فارغة أو تحتوي على أي عدد من العناصر (بما في ذلك العناصر المكررة).
وكائنات List هي واجهة عامة محدَّدة النوع لتشير إلى نوع الكائنات التي يمكن أن تحتوي عليها.
على سبيل المثال:
List<String> emptyListOfStrings = List.of();
List<Integer> singleInteger = List.of(1);
List<Boolean> threeBooleans = List.of(true, false, true);
List<Object> listWithMultipleTypes = List.of("hello", 1, true);
لِكائنات List طرق مفيدة متنوعة لإضافة عنصر أو إزالته أو جلبه أو التحقق من وجوده:
List<Character> vowels = new ArrayList<>(List.of('a', 'e', 'i', 'o', 'i', 'e', 'a'));
int startingSize = vowels.size(); // 7
vowels.add('u'); // vowels is now ['a', 'e', 'i', 'o', 'i', 'e', 'a', 'u']
char a = vowels.get(0); // 'a'
boolean hadI = vowels.remove('i'); // true and vowels is now ['a', 'e', 'o', 'i', 'e', 'a', 'u']
boolean hasI = vowels.contains('i'); // true (still have one more left)
كما يوفّر الصنف Collections بعض الأدوات المفيدة للتعامل مع المجموعات مثل List:
List<Integer> numbers = new ArrayList<>(List.of(1, 5, 3, 2, 4));
Collections.sort(numbers); // [1, 2, 3, 4, 5]
Collections.reverse(numbers); // [5, 4, 3, 2, 1]
Collections.fill(numbers, 42); // [42, 42, 42, 42, 42]
List<Integer> fiveNines = Collections.nCopies(5, 9); // [9, 9, 9, 9, 9]