Sobes.tech
Junior — Middle

თუ მე გამოვიძახებ toList() მეთოდს Stream-ზე, იქნება შედეგი ArrayList თუ სხვა ტიპის კოლექცია?

sobes.tech AI

პასუხი AI-სგან

Stream ინტერფეისის toList() მეთოდი (Java 16-დან და შემდეგ) აბრუნებს უცვლელ სიას, მაგრამ კოლექციის კონკრეტული ტიპი არ არის გარანტირებული და აუცილებელი არაა ArrayList. განსხვავებით collect(Collectors.toList())-ისგან, რომელიც ჩვეულებრივ აბრუნებს ArrayList-ს, Stream.toList() შეიძლება დააბრუნოს სხვა ტიპის სია, რომელიც ოპტიმიზირებულია კონკრეტული განხორციელებისთვის.

მაგალითი:

List<String> list = Stream.of("a", "b", "c").toList();
// სია უცვლელია, მისი შეცვლა გამოიწვევს UnsupportedOperationException-ს

ამიტომ, არ შეიძლება იმედი ჰქონდეს, რომ შედეგი იქნება ზუსტად ArrayList. თუ კონკრეტულად ArrayList სჭირდება, უკეთესია გამოიყენოთ collect(Collectors.toList()).