List.replaceAll() মেথড
জাভা ৮ থেকে `List` ইন্টারফেসে `replaceAll(UnaryOperator<E> operator)` মেথড যোগ হয়েছে। এটি লিস্টের প্রতিটি এলিমেন্টে `UnaryOperator` অপারেশন প্রয়োগ করে এবং আপডেট করে (ইন-প্লেস মডিফিকেশন)।
UnaryOperator ইন্টারফেস
`java.util.function.UnaryOperatorFunction`-এর সাব-ইন্টারফেস। একই টাইপের ইনপুট নেয় এবং একই টাইপের আউটপুট দেয়। ল্যাম্বডা এক্সপ্রেশন বা মেথড রেফারেন্স হিসেবে ব্যবহার করা যায়।
কোড উদাহরণ: কাস্টম UnaryOperator ইমপ্লিমেন্টেশন
import java.util.ArrayList;
import java.util.function.UnaryOperator;
class Op implements UnaryOperator<String> {
@Override
public String apply(String str) {
return str.toUpperCase(); // আপারকেসে রূপান্তর
}
}
public class ListReplaceAllExample {
public static void main(String[] args) throws CloneNotSupportedException {
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("JavaScript");
list.add("CoffeeScript");
list.add("HBase");
list.add("OpenNLP");
System.out.println("লিস্টের কন্টেন্ট: " + list);
// replaceAll() কল
list.replaceAll(new Op());
System.out.println("রিপ্লেস অপারেশন کے بعد লিস্ট:\n" + list);
}
}
আউটপুট
লিস্টের কন্টেন্ট: [Java, JavaScript, CoffeeScript, HBase, OpenNLP]
রিপ্লেস অপারেশন کے بعد লিস্ট:
[JAVA, JAVASCRIPT, COFFEESCRIPT, HBASE, OPENNLP]
ল্যাম্বডা এক্সপ্রেশন ব্যবহার (সংক্ষিপ্ত)
// কাস্টম ক্লাস ছাড়া ল্যাম্বডা দিয়ে
list.replaceAll(s -> s.toUpperCase());
// বা মেথড রেফারেন্স
list.replaceAll(String::toUpperCase);
Collections.replaceAll() vs List.replaceAll()
| বিষয় | Collections.replaceAll() | List.replaceAll() |
|---|---|---|
| সিগনেচার | replaceAll(List, oldVal, newVal) | replaceAll(UnaryOperator) |
| কাজ | নির্দিষ্ট ভ্যালু রিপ্লেস | প্রতিটি এলিমেন্টে অপারেশন প্রয়োগ |
| ফ্লেক্সিবিলিটি | সিম্পল রিপ্লেসমেন্ট | যেকোনো ট্রান্সফরমেশন |
| রিটার্ন টাইপ | boolean (রিপ্লেস হয়েছে কিনা) | void (ইন-প্লেস) |
সারসংক্ষেপ
`List.replaceAll(UnaryOperator)` জাভা ৮+ এ লিস্ট এলিমেন্টস ইন-প্লেস ট্রান্সফর্ম করার মডার্ন, ফাংশনাল উপায়। ল্যাম্বডা এক্সপ্রেশন (`s -> s.toUpperCase()`) বা মেথড রেফারেন্স (`String::toUpperCase`) দিয়ে খুব সংক্ষিপ্ত কোডে পাওয়ারফুল ট্রান্সফরমেশন করা যায়।