কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ JShell-এ Set ইন্টারফেস ইমপ্লিমেন্ট করার পদ্ধতি

JShell জাভা ৯-এ একটি কমান্ড-লাইন টুল যা এক্সপ্রেশন, ক্লাস, ইন্টারফেস, মেথড ইত্যাদি সিম্পল স্টেটমেন্ট এক্সিকিউট করতে ব্যবহৃত হয়।

একটি Set জাভাতে একটি ইন্টারফেস যা ইউনিক এলিমেন্ট 가진 কলেকশনের জন্য কনট্র্যাক্ট নির্দিষ্ট করে। যদি object1.equals(object2) true রিটার্ন করে, তবে object1 এবং object2-র শুধু একটি Set ইমপ্লিমেন্টেশনে থাকতে পারে।

নিচের কোড স্নিপেটে, আমরা Set.of() মেথড ব্যবহার করেছি। Set.of() মেথড থেকে রিটার্ন হওয়া কলেকশন ইমিউটেবল, তাই এটি add() মেথড সাপোর্ট করে না। যদি আমরা এলিমেন্ট অ্যাড করার চেষ্টা করি, তবে UnsupportedOperationException থ্রো করে। যদি আমরা HashSet কলেকশন তৈরি করতে চাই, যা add() মেথড সাপোর্ট করে Set-এর ইউনিক প্রোপার্টি টেস্ট করার জন্য। এটি false রিটার্ন করে যা ইন্ডিকেট করে ডুপ্লিকেট "Adithya" এন্ট্রি ইনসার্ট করা ব্যর্থ হয়েছে।

স্নিপেট-১

jshell> Set<String> set = Set.of("Adithya", "Chaitanya", "Jai"); set ==> [Jai, Adithya, Chaitanya]
jshell> set.add("Adithya"); |   java.lang.UnsupportedOperationException thrown:
jshell> Set<String> hashSet = new HashSet<>(set); hashSet ==> [Chaitanya, Jai, Adithya]
jshell> hashSet.add("Adithya"); $8 ==> false
jshell> hashSet
hashSet ==> [Chaitanya, Jai, Adithya]

নিচের কোড স্নিপেটে, আমরা HashSet ইমপ্লিমেন্ট করেছি যেখানে এলিমেন্টগুলো না ইনসারশন অর্ডারে থাকে না সর্টেড অর্ডারে।

স্নিপেট-২

jshell> Set<Integer> numbers = new HashSet<>(); numbers ==> []
jshell> numbers.add(12345); $11 ==> true
jshell> numbers.add(1234); $12 ==> true
jshell> numbers.add(123); $13 ==> true
jshell> numbers.add(12); $14 ==> true
jshell> numbers
numbers ==> [1234, 12345, 123, 12]

নিচের কোড স্নিপেটে, আমরা LinkedHashSet ইমপ্লিমেন্ট করেছি যেখানে এলিমেন্টগুলো ইনসারশন অর্ডারে সংরক্ষিত থাকে।

স্নিপেট-৩

jshell> Set<Integer> numbers1 = new LinkedHashSet<>(); numbers1 ==> []
jshell> numbers1.add(12345); $17 ==> true
jshell> numbers1.add(1234); $18 ==> true
jshell> numbers1.add(123); $19 ==> true
jshell> numbers1.add(12); $20 ==> true
jshell> numbers1
numbers1 ==> [12345, 1234, 123, 12]
jshell> numbers1.add(123456); $22 ==> true
jshell> numbers1
numbers1 ==> [12345, 1234, 123, 12, 123456]

নিচের কোড স্নিপেটে, আমরা TreeSet ইমপ্লিমেন্ট করেছি যেখানে এলিমেন্টগুলো সর্টেড অর্ডারে সংরক্ষিত থাকে।

স্নিপেট-৪

jshell> Set<Integer> numbers2 = new TreeSet<>(); numbers2 ==> []
jshell> numbers2.add(12345); $25 ==> true
jshell> numbers2.add(1234); $26 ==> true
jshell> numbers2.add(123); $27 ==> true
jshell> numbers2.add(12); $28 ==> true
jshell> numbers2
numbers2 ==> [12, 123, 1234, 12345]
jshell> numbers2.add(123456); $30 ==> true
jshell> numbers2
numbers2 ==> [12, 123, 1234, 12345, 123456]
  1. জাভা ৯-এ JavaFX ব্যবহার করে JShell ইমপ্লিমেন্ট করার পদ্ধতি

  2. জাভা ৯-এ JShell-এ ক্লাস এবং ইন্টারফেস কীভাবে ডিক্লেয়ার করবেন?

  3. জাভা ৯-এ জেশেলে এক্সসেপশন হ্যান্ডলিং

  4. জাভাতে অ্যানোনিমাস ইনার ক্লাস ব্যবহার করে ইন্টারফেস ইমপ্লিমেন্ট করা