হ্যাঁ, কারণ আপনি বাইরের কোড থেকে কোনও পরিসর সরিয়ে ফেলেন না। পরিবর্তে, এটি করুন:
list.subList(start, end).clear();
এটি আসলে removeRangeপর্দার আড়ালে কল করে। †
ওপি জিজ্ঞাসা করে কেন পাবলিক এপিআইয়ের removeRangeঅংশ নয় List? কার্যকরী জাভা 2 য় সংস্থার আইটেম 40 এ কারণটি বর্ণিত হয়েছে, এবং আমি এটি এখানে উদ্ধৃত করছি:
অতিরিক্ত দীর্ঘ প্যারামিটারের তালিকা ছোট করার জন্য তিনটি কৌশল রয়েছে। একটি হল পদ্ধতিটিকে একাধিক পদ্ধতিতে বিভক্ত করা, যার প্রতিটিটির জন্য কেবলমাত্র পরামিতিগুলির একটি উপসেট প্রয়োজন। যদি অযত্নে করা হয় তবে এটি অনেকগুলি পদ্ধতির দিকে পরিচালিত করতে পারে, তবে এটি অরথোগোনালিটি বাড়িয়ে পদ্ধতি গণনা হ্রাস করতেও সহায়তা করতে পারে । উদাহরণস্বরূপ, java.util.Listইন্টারফেস বিবেচনা করুন । এটি একটি সাবলিস্টে কোনও উপাদানের প্রথম বা শেষ সূচকগুলি খুঁজে পাওয়ার জন্য পদ্ধতি সরবরাহ করে না, উভয়ের জন্যই তিনটি পরামিতি প্রয়োজন। এর পরিবর্তে এটি উপলব্ধ করা subListপদ্ধতি, যা দুটি প্যারামিটার নেয় এবং একটি ফেরৎ দৃশ্য একটি sublist করুন। এই পদ্ধতিটি পদ্ধতির সাথে একত্রিত হতে পারে যে কোনও পদ্ধতির সাথে সংযোজন করা যেতে পারে aindexOf বা lastIndexOfপদ্ধতিগুলির , যার প্রতিটিটিরই একক প্যারামিটার রয়েছে, যাতে কাঙ্ক্ষিত কার্যকারিতাটি পাওয়া যায়। তদুপরি,subListListসাবলিস্টগুলিতে স্বেচ্ছাসেবী গণনা সম্পাদনের জন্য । ফলাফলের এপিআই-তে খুব উচ্চ-পাওয়ার-থেকে-ওজন অনুপাত রয়েছে।
একটি যুক্তি দিতে removeRangeপারে যে এর অনেকগুলি পরামিতি নেই এবং তাই সম্ভবত এই চিকিত্সার জন্য প্রার্থী নয়, তবে এটির removeRangeমাধ্যমে প্রার্থনা করার উপায় subListআছে, Listঅনর্থক পদ্ধতিতে ইন্টারফেসটিকে বিশৃঙ্খলা করার কোনও কারণ নেই ।
†AbstractList.removeRange ডকুমেন্টেশন বলেছেন:
clearএই তালিকাটি অপারেশন দ্বারা এই তালিকাটিতে এবং এর সাবলিস্টগুলিকে বলা হয়। তালিকার প্রয়োগের অভ্যন্তরীণগুলির সুবিধা গ্রহণের জন্য এই পদ্ধতিটি ওভাররাইড করা এই তালিকা এবং এর সাবলিস্টে অপারেশনটির কার্যকারিতা যথেষ্ট পরিমাণে উন্নতি করতে পারে clear।
এছাড়াও, ওপেনজেডিকে AbstractList.clearএবং বাস্তবায়ন দেখুন SubList.removeRange।