কম্পিউটার

জাভাতে তুলনাযোগ্য এবং তুলনাকারীর মধ্যে পার্থক্য


তুলনামূলক এবং তুলনাকারী উভয়ই একটি ইন্টারফেস যা সংগ্রহের উপাদানগুলিকে সাজানোর জন্য ব্যবহার করা যেতে পারে। কম্প্যারেটর ইন্টারফেস java.util প্যাকেজের অন্তর্গত এবং তুলনীয় java.lang প্যাকেজের অন্তর্গত। কম্প্যারেটর ইন্টারফেস বাছাইয়ের সংগ্রহ এটিকে দেওয়া দুটি বস্তু ব্যবহার করে, যেখানে তুলনামূলক ইন্টারফেস তুলনা করে "এটি" এটিকে দেওয়া একটি বস্তুকে বোঝায়।

Sr. না। কী তুলনাযোগ্য তুলনাকারী
1 পদ্ধতি
তুলনাযোগ্য ইন্টারফেসে তুলনা করার একটি পদ্ধতি রয়েছে (অবজেক্ট a )
তুলনাকারীর একটি পদ্ধতি তুলনা আছে (অবজেক্ট o1, অবজেক্ট O2)
2
বাছাই ব্যবহার
Collection.sort(List) পদ্ধতি ব্যবহার করা যেতে পারে তুলনীয় ধরনের বস্তুর সংগ্রহ সাজানোর জন্য।
Collection.sort(List, Comparator) পদ্ধতিটি Comparator ধরনের বস্তুর সংগ্রহ সাজানোর জন্য ব্যবহার করা যেতে পারে।
3
বাছাই ক্রম
তুলনাযোগ্য একক বাছাই ক্রম প্রদান করে।
তুলনাকারী একটি একাধিক বাছাই ক্রম প্রদান করে।
4
প্যাকেজ
তুলনাযোগ্য ইন্টারফেস java.lang প্যাকেজের অন্তর্গত।
তুলনাকারী ইন্টারফেস java.util প্যাকেজের অন্তর্গত।

তুলনাযোগ্য উদাহরণ

public class ComparableExample {
   public static void main(String[] args) {
      List<Laptop> laptopList = new ArrayList<>();
      laptopList.add(new Laptop("HCL", 16, 800));
      laptopList.add(new Laptop("Apple", 8, 100));
      laptopList.add(new Laptop("Dell", 4, 600));
      Collections.sort(laptopList);
      for (Laptop lap : laptopList) {
         System.out.println(lap.getRam());
      }
   }
}
public class Laptop implements Comparable<Laptop> {
   String name;
   int ram;
   int price;
   public Laptop(String name, int ram, int price) {
      super();
      this.name = name;
      this.ram = ram;
      this.price = price;
   }
   public String getName() {
      return name;
   }
   public int getRam() {
      return ram;
   }
   public void setRam(int ram) {
      this.ram = ram;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getPrice() {
      return price;
   }
   public void setPrice(int price) {
      this.price = price;
   }
   @Override
   public int compareTo(Laptop o) {
      if (this.ram > o.getRam())
         return 1;
      else {
         return -1;
      }  
   }
}

আউটপুট

4
8
16

তুলনাকারীর উদাহরণ

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Laptop implements Comparator {
   String name;
   int ram;
   int price;
   public Laptop(String name, int ram, int price) {
      super();
      this.name = name;
      this.ram = ram;
      this.price = price;
   }
   public String getName() {
      return name;
   }
   public int getRam() {
      return ram;
   }
   public void setRam(int ram) {
      this.ram = ram;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getPrice() {
      return price;
   }
   public void setPrice(int price) {
      this.price = price;
   }
   @Override
   public int compare(Laptop o1, Laptop o2) {
      if (o1.getRam() < o2.getRam()) {
         return -1;
      }else if (o1.getRam() > o2.getRam()) {
         return 1;
      } else {
         return 0;
      }
   }
   public static void main(String[] args) {
      List laptopList = new ArrayList<>();
      laptopList.add(new Laptop("HCL", 16, 800));
      laptopList.add(new Laptop("Apple", 8, 100));
      laptopList.add(new Laptop("Dell", 4, 600));
      Comparator com = (Laptop o1, Laptop o2) -> o1.getName().compareTo(o2.getName());
      Collections.sort(laptopList, com);
      for (Laptop lap : laptopList) {
         System.out.println(lap.getName());
      }
   }
}

আউটপুট

Apple
Dell
HCL

  1. জাভাতে সিরিয়ালাইজেশন এবং এক্সটারনালাইজেশনের মধ্যে পার্থক্য

  2. জাভাতে তুলনাযোগ্য এবং তুলনাকারীর মধ্যে পার্থক্য

  3. জাভাতে ইটারেটর এবং গণনার মধ্যে পার্থক্য

  4. জাভাতে অ্যারেলিস্ট এবং হ্যাশসেটের মধ্যে পার্থক্য