unmodifiableList() java.util.Collections এর পদ্ধতি ক্লাস লিস্ট ইন্টারফেসের একটি অবজেক্ট গ্রহণ করে (এর ক্লাস বাস্তবায়নের অবজেক্ট) এবং প্রদত্ত অবজেক্টের একটি অপরিবর্তনীয় ফর্ম প্রদান করে। ব্যবহারকারীর প্রাপ্ত তালিকায় শুধুমাত্র পঠন-পাঠনের অ্যাক্সেস রয়েছে।
উদাহরণ
জাভা প্রোগ্রাম অনুসরণ করে একটি ArrayList অবজেক্ট তৈরি করে, এতে উপাদান যোগ করে, এটিকে শুধুমাত্র পঠনযোগ্য তালিকা অবজেক্টে রূপান্তরিত করে।
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArrayListReadOnly { public static void main(String[] args) { //Instantiating an ArrayList object ArrayList<String> list = new ArrayList<String>(); list.add("JavaFx"); list.add("Java"); list.add("WebGL"); list.add("OpenCV"); System.out.println(list); //Converting the ArrayList to read only list List<String> myList = (List<String>) Collections.unmodifiableList(list); System.out.println("Array list converted to read only "+list); } }
আউটপুট
[JavaFx, Java, WebGL, OpenCV] Array list converted to read only [JavaFx, Java, WebGL, OpenCV]
একবার আপনি একটি তালিকা অবজেক্টের শুধুমাত্র পঠনযোগ্য দৃশ্য পুনরুদ্ধার করলে আপনি এর বিষয়বস্তু পরিবর্তন করতে পারবেন না, যেমন আপনি সরাসরি এটি থেকে উপাদান যোগ করতে বা মুছতে পারবেন না বা Iterator অবজেক্ট ব্যবহার করে, যদি আপনি এটি করেন তাহলে একটি UnsupportedOperationException উত্থাপিত হবে।
উদাহরণ
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArrayListReadOnly { public static void main(String[] args) { //Instantiating an ArrayList object ArrayList<String> list = new ArrayList<String>(); list.add("JavaFx"); list.add("Java"); list.add("WebGL"); list.add("OpenCV"); System.out.println(list); //Converting the ArrayList to read only list List<String> myList = (List<String>) Collections.unmodifiableList(list); myList.add("CoffeeScript"); System.out.println("Array list converted to read only "+myList); } }
চালানোর সময় ব্যতিক্রম
[JavaFx, Java, WebGL, OpenCV] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at SEPTEMBER.remaining.ArrayListReadOnly.main(ArrayListReadOnly.java:20)