ডেটা তালিকা পরিষ্কার করার জন্য, আমি একটি পদ্ধতি তৈরি করেছি যা ডেটা তালিকা এবং পরিস্কার করা অপারেশনগুলির তালিকা গ্রহণ করে।
public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) {
List<T>dataNew=data.stream().map((str) -> {
T cleanData = str;
for(Function<T,T> function:cleanOps) {
cleanData=function.apply(cleanData);
}
return cleanData;
}).collect(Collectors.toList());
return dataNew;
}
এখানে সমস্যাটি হ'ল আমরা Collectors.toList()
নতুন তালিকাটি ফেরত দেওয়ার সাথে সাথে পুরো তালিকাটি তৈরি করছি । অতিরিক্ত স্থান ব্যবহার না করে আমরা কি একই ফলাফল অর্জন করতে পারি?
নীচে আমন্ত্রণের জন্য কোডটি দেওয়া হল:
public void processData() {
List<Function<String, String>> cleanOps = new ArrayList<>();
cleanOps.add(String::toLowerCase);
cleanOps.add(str -> str.replaceAll(" ", ""));
List<String> data = new ArrayList<>();
data.add("John Doe");
data.add("Jane Doe");
System.out.println(Arrays.toString(cleanData(data, cleanOps).toArray()));
}
toList()
একটিCollector
নাList
এবং না প্রদান করে: আপনার কাছে "অতিরিক্ত স্থান" ছাড়া "অতিরিক্ত ডেটা" থাকতে পারে না