java - জাভা এর সংগ্রহসমূহ ব্যবহার করুন।




জাভার সুবিধা (4)

আপনার অপ্রচলিত প্রশ্নের উত্তর দিতে:

Collections.SingletonList । SingletonList একটি অপরিবর্তনীয় তালিকা তৈরি করবে। একটি অননুমোদিত তালিকা (এটি একটি অননুমোদিত তালিকা হিসাবেও উল্লেখ করা হয়) এটির সামগ্রী পরিবর্তিত হতে পারে না। আপনি আইটেম পরিবর্তন করার চেষ্টা করলে আইটেমগুলি যুক্ত বা অপসারণ করার পদ্ধতি ব্যতিক্রমগুলি নিক্ষেপ করবে।

একটি সিঙ্গল্ট তালিকা শুধুমাত্র যে আইটেম রয়েছে এবং পরিবর্তন করা যাবে না।

জাভাতে Collections.singletonList() ব্যবহার কি? আমি বুঝতে পারি যে এটি একটি উপাদান দিয়ে একটি তালিকা প্রদান করে। আমি কেন এমন একটি পৃথক পদ্ধতি চাই? কিভাবে immutability এখানে একটি ভূমিকা পালন করে?

শুধু একটি সুবিধাজনক পদ্ধতির পরিবর্তে এই পদ্ধতির জন্য কোন বিশেষ দরকারী ব্যবহার ক্ষেত্রে আছে?


এখানে সিঙ্গল্টন পদ্ধতিগুলির একটি view :

আমি এই বিভিন্ন "সিঙ্গলটন" পদ্ধতিগুলিকে API- এ একটি একক মান পাস করার জন্য উপযোগী হতে পেয়েছি যার জন্য সেই মান সংগ্রহের প্রয়োজন। অবশ্যই, এটি উত্তম কাজ করে যখন পাস-ইন মান কোড প্রক্রিয়াকরণ সংগ্রহে যোগ করার প্রয়োজন হয় না।


javadoc এই কথা বলেছেন:

"শুধুমাত্র নির্দিষ্ট বস্তু ধারণকারী একটি অপরিবর্তনীয় তালিকা প্রদান করে। ফেরত তালিকা সিরিয়ালযোগ্য।"

আপনি জিজ্ঞাসা করুন:

আমি কেন এমন একটি পৃথক পদ্ধতি চাই?

সুবিধার জন্য ... আপনাকে বিবৃতির একটি ক্রম লিখতে বাঁচাতে:

  • একটি খালি তালিকা বস্তু তৈরি করুন
  • এটি একটি উপাদান যোগ করুন, এবং
  • একটি অপরিবর্তনীয় মোড়ানো সঙ্গে মোড়ানো।

কিভাবে immutability এখানে একটি ভূমিকা পালন করে?

এটি পদ্ধতির স্পেসিফিকেশন অংশ; উপরে দেখুন.

কোনও সুবিধাজনক পদ্ধতির পরিবর্তে এই পদ্ধতির জন্য কোনও বিশেষ দরকারী ব্যবহার-কেস আছে?

স্পষ্টতই, singletonList পদ্ধতি ব্যবহার করার সুবিধাজনক ক্ষেত্রে এটি ব্যবহারযোগ্য। কিন্তু আমি জানি না কিভাবে আপনি (বস্তুগতভাবে) একটি সাধারণ ব্যবহার-কেস এবং "বিশেষভাবে দরকারী" একের মধ্যে পার্থক্য করবেন ...


@param  the sole object to be stored in the returned list.
@return an immutable list containing only the specified object.

import java.util.*;

public class HelloWorld {
    public static void main(String args[]) {
        // create an array of string objs
        String initList[] = { "One", "Two", "Four", "One",};

        // create one list
        List list = new ArrayList(Arrays.asList(initList));

        System.out.println("List value before: "+list);

        // create singleton list
        list = Collections.singletonList("OnlyOneElement");
        list.add("five"); //throws UnsupportedOperationException
        System.out.println("List value after: "+list);
    }
}

যখন কোডটি শুধুমাত্র একটি পঠনযোগ্য তালিকা আশা করে তখন এটি ব্যবহার করুন, তবে আপনি কেবল এটিতে একটি উপাদান পাস করতে চান। একক্টোনস্টস্ট (থ্রেড-) নিরাপদ এবং দ্রুত।






java