Apache Commons Collections লাইব্রেরির PredicateUtils
ক্লাসটি বিভিন্ন Predicate
অপারেশন তৈরি করার জন্য সহায়ক ইউটিলিটি মেথড সরবরাহ করে। Predicate একটি ফাংশনাল প্রোগ্রামিং কৌশল যা একটি ইনপুট গ্রহণ করে এবং একটি বুলিয়ান মান (true/false) রিটার্ন করে, যা শর্ত নির্ধারণ করে। PredicateUtils
ক্লাসটি এই predicates তৈরি ও কম্বাইন করার কাজকে সহজ করে তোলে, এবং collection-এর উপাদানগুলিতে শর্ত প্রয়োগ করার জন্য একটি শক্তিশালী টুল সরবরাহ করে।
এই পোস্টে আমরা PredicateUtils
এর বিভিন্ন উন্নত ব্যবহার কৌশল নিয়ে আলোচনা করব এবং দেখব কীভাবে আপনি একাধিক predicates কম্বাইন বা ফিল্টার করতে পারেন।
PredicateUtils
এর বৈশিষ্ট্য এবং কার্যকারিতাPredicateUtils
ক্লাসে কিছু খুবই শক্তিশালী মেথড রয়েছে যা আপনাকে predicate তৈরি, একাধিক predicate একসাথে কম্বাইন এবং অন্যান্য ফাংশনাল শর্ত প্রয়োগে সহায়তা করে। এর কিছু প্রধান বৈশিষ্ট্য:
allPredicate()
: একটি নতুন predicate তৈরি করে যা সমস্ত উপাদানের জন্য সত্য হয়।anyPredicate()
: একটি নতুন predicate তৈরি করে যা যে কোন উপাদানের জন্য সত্য হতে পারে।not()
: একটি predicate এর বিপরীত শর্ত তৈরি করে।and()
: দুটি বা ততোধিক predicate কে একত্রে যুক্ত করে একটি যৌথ শর্ত তৈরি করে।or()
: দুটি বা ততোধিক predicate কে একত্রে যুক্ত করে একটি যে কোন শর্তের ভিত্তিতে সত্য হয় এমন শর্ত তৈরি করে।allPredicate()
: সমস্ত উপাদানের জন্য সত্য হবে এমন একটি predicate তৈরি করা।anyPredicate()
: কোনো একটি উপাদান সত্য হলে, শর্ত পাস করবে এমন একটি predicate তৈরি করা।not()
: একটি predicate এর বিপরীত শর্ত তৈরি করা।and()
: দুটি বা ততোধিক predicate এর যৌথ শর্ত তৈরি করা।or()
: দুটি বা ততোধিক predicate এর যৌথ শর্ত তৈরি করা, যেখানে যে কোনো একটি শর্ত সত্য হলে, পুরো predicate সত্য হবে।allPredicate()
উদাহরণ:allPredicate()
মেথডটি একটি predicate তৈরি করে যা নিশ্চিত করে যে সমস্ত উপাদান সেই শর্তে পাস করবে।
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;
import java.util.Arrays;
import java.util.List;
public class PredicateUtilsExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(2, 4, 6, 8, 10);
// Create a predicate that checks if all numbers are even
Predicate<Integer> allEven = PredicateUtils.allPredicate(new Predicate<Integer>() {
@Override
public boolean evaluate(Integer number) {
return number % 2 == 0; // Check if number is even
}
});
// Check if all numbers are even
boolean result = true;
for (Integer number : numbers) {
if (!allEven.evaluate(number)) {
result = false;
break;
}
}
System.out.println("All numbers are even: " + result); // Output: true
}
}
PredicateUtils.allPredicate()
একটি predicate তৈরি করছে যা নিশ্চিত করে যে প্রতিটি উপাদান even (যুগল) হতে হবে।allEven.evaluate()
মেথডটি প্রতিটি উপাদান যাচাই করে এবং যদি কোনো এক উপাদান শর্ত পূরণ না করে তবে এটি false রিটার্ন করবে।anyPredicate()
উদাহরণ:anyPredicate()
মেথডটি একটি predicate তৈরি করে যা কোনো একটি উপাদান শর্ত পূর্ণ করলে তা সত্য হবে।
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;
import java.util.Arrays;
import java.util.List;
public class PredicateUtilsExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 3, 5, 7, 10);
// Create a predicate that checks if any number is greater than 5
Predicate<Integer> anyGreaterThanFive = PredicateUtils.anyPredicate(new Predicate<Integer>() {
@Override
public boolean evaluate(Integer number) {
return number > 5; // Check if number is greater than 5
}
});
// Check if any number is greater than 5
boolean result = false;
for (Integer number : numbers) {
if (anyGreaterThanFive.evaluate(number)) {
result = true;
break;
}
}
System.out.println("Any number is greater than 5: " + result); // Output: true
}
}
anyPredicate()
একটি predicate তৈরি করছে যা নিশ্চিত করে যে কোনো একটি উপাদান যদি ৫ এর বেশি হয় তবে এটি সত্য রিটার্ন করবে।anyGreaterThanFive.evaluate()
মেথডটি উপাদান যাচাই করে এবং যদি কোনো একটি উপাদান শর্ত পূর্ণ করে, তাহলে এটি সত্য রিটার্ন করবে।and()
উদাহরণ:and()
মেথডটি দুটি predicate একত্রে যুক্ত করে একটি যৌথ শর্ত তৈরি করে। দুটি শর্তই পূর্ণ হতে হবে।
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;
import java.util.Arrays;
import java.util.List;
public class PredicateUtilsExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(2, 4, 6, 7, 10);
// Create two predicates: check if number is even and greater than 5
Predicate<Integer> isEven = new Predicate<Integer>() {
@Override
public boolean evaluate(Integer number) {
return number % 2 == 0; // Check if number is even
}
};
Predicate<Integer> greaterThanFive = new Predicate<Integer>() {
@Override
public boolean evaluate(Integer number) {
return number > 5; // Check if number is greater than 5
}
};
// Combine the predicates using and()
Predicate<Integer> isEvenAndGreaterThanFive = PredicateUtils.and(isEven, greaterThanFive);
// Check if any number satisfies both conditions
for (Integer number : numbers) {
if (isEvenAndGreaterThanFive.evaluate(number)) {
System.out.println(number + " satisfies both conditions");
}
}
}
}
6 satisfies both conditions
10 satisfies both conditions
and()
মেথডটি দুটি predicate (একটি even চেক এবং অন্যটি greater than 5 চেক) একত্রে ব্যবহার করছে।6
এবং 10
শর্ত পূর্ণ করেছে, কারণ তাদের উভয় শর্তই পূর্ণ হয়েছে।or()
উদাহরণ:or()
মেথডটি দুটি predicate একত্রে যুক্ত করে একটি যৌথ শর্ত তৈরি করে, যেখানে যেকোনো একটি শর্ত পূর্ণ হলেই তা সত্য হবে।
import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;
import java.util.Arrays;
import java.util.List;
public class PredicateUtilsExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 3, 5, 7, 10);
// Create two predicates: check if number is even or greater than 5
Predicate<Integer> isEven = new Predicate<Integer>() {
@Override
public boolean evaluate(Integer number) {
return number % 2 == 0; // Check if number is even
}
};
Predicate<Integer> greaterThanFive = new Predicate<Integer>() {
@Override
public boolean evaluate(Integer number) {
return number > 5; // Check if number is greater than 5
}
};
// Combine the predicates using or()
Predicate<Integer> isEvenOrGreaterThanFive = PredicateUtils.or(isEven, greaterThanFive);
// Check if any number satisfies at least one condition
for (Integer number : numbers) {
if (isEvenOrGreaterThanFive.evaluate(number)) {
System.out.println(number + " satisfies at least one condition");
}
}
}
}
1 satisfies at least one condition
3 satisfies at least one condition
5 satisfies at least one condition
7 satisfies at least one condition
10 satisfies at least one condition
or()
মেথডটি দুটি predicate (একটি even চেক এবং অন্যটি greater than 5 চেক) একত্রে ব্যবহার করছে।or()
শর্ত পূর্ণ করেছে।PredicateUtils
Apache Commons Collections লাইব্রেরির একটি শক্তিশালী ক্লাস যা বিভিন্ন predicate অপারেশন এবং তাদের কম্বিনেশন তৈরি করতে সহায়তা করে। PredicateUtils
এর মেথড যেমন allPredicate()
, anyPredicate()
, and()
, এবং or()
আপনাকে একাধিক শর্তের ভিত্তিতে কালেকশনের উপাদানগুলো ফিল্টার করতে সহায়তা করে। এটি আপনাকে ফাংশনাল শর্তগুলির প্রয়োগ ও ম্যানিপুলেশন সহজ এবং কার্যকরীভাবে করতে সহায়তা করে।
common.read_more