لیست مجموعهی ترتیبی در 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]