উত্তর:
ব্যবহার List.subList
:
import java.util.*;
import static java.lang.Math.min;
public class T {
public static void main( String args[] ) {
List<String> items = Arrays.asList("1");
List<String> subItems = items.subList(0, min(items.size(), 2));
// Output: [1]
System.out.println( subItems );
items = Arrays.asList("1", "2", "3");
subItems = items.subList(0, min(items.size(), 2));
// Output: [1, 2]
System.out.println( subItems );
}
}
আপনার মনে রাখা উচিত যে subList
আইটেমগুলির একটি দৃশ্য ফেরত দেয়, তাই যদি আপনি বাকী তালিকাটি আবর্জনা সংগ্রহের জন্য যোগ্য হতে চান তবে আপনার যে আইটেমটি নতুন করতে চান তা অনুলিপি করা উচিত List
:
List<String> subItems = new ArrayList<String>(items.subList(0, 2));
তালিকাটি যদি নির্দিষ্ট আকারের চেয়ে ছোট হয় তবে সীমা ছাড়িয়ে যাওয়ার ব্যতিক্রম আশা করুন । শেষের সূচক হিসাবে পছন্দসই আকারের সর্বনিম্ন মান এবং তালিকার বর্তমান আকার চয়ন করুন।
সর্বশেষে, দ্রষ্টব্য যে দ্বিতীয় আর্গুমেন্টটি সর্বশেষ পছন্দসই সূচকের চেয়ে আরও একটি হওয়া উচিত।
list.subList(100, list.size()).clear();
বা:
list.subList(0, 100);
list = list.subList(0, 100)
subList(100, list.size()).clear()
শুধুমাত্র হবে কাজ যদি তালিকা উদাহরণস্বরূপ, তার স্পষ্ট পদ্ধতি বাস্তবায়িত হয়েছে থাকে আপনি তৈরি list
দ্বারা List<String> list = Arrays.asList(someString.split(","));
স্পষ্ট () নিক্ষেপ করা হবে UnsupportedOperationException
যেহেতু list
একটি বিমূর্ত হতে হবে List
।
list.subList(n, list.size()).clear();
subList
অন্যান্য উত্তরগুলিতে যেমন পরামর্শ দেওয়া হয়েছে, তা মনে মনে আসে। আমিও একটি স্ট্রিম পদ্ধতির পরামর্শ দেব ।
source.stream().limit(10).collect(Collectors.toList()); // truncate to first 10 elements
source.stream().skip(2).limit(5).collect(Collectors.toList()); // discards the first 2 elements and takes the next 5