আমি নথির দিকে তাকিয়ে আছি IntStream, এবং আমি একটি toArrayপদ্ধতি দেখছি , তবে সরাসরি এ-তে যাওয়ার কোনও উপায় নেইList<Integer>
নিশ্চয় একটি উপায় আছে একটি রূপান্তর হয় Streamএকটি থেকে List?
আমি নথির দিকে তাকিয়ে আছি IntStream, এবং আমি একটি toArrayপদ্ধতি দেখছি , তবে সরাসরি এ-তে যাওয়ার কোনও উপায় নেইList<Integer>
নিশ্চয় একটি উপায় আছে একটি রূপান্তর হয় Streamএকটি থেকে List?
উত্তর:
IntStream::boxedIntStream::boxedএকটি সক্রিয় IntStreamএকটি মধ্যে Stream<Integer>যা আপনি করতে পারেন তাহলে collectএকটি মধ্যে List:
theIntStream.boxed().collect(Collectors.toList())
boxedপদ্ধতি পরিবর্তন করে intএকটি আদিম মান IntStreamএকটি স্ট্রীমে Integerবস্তু। শব্দ "বক্সিং" নাম int⬌ Integerরূপান্তর প্রক্রিয়া। ওরাকল টিউটোরিয়াল দেখুন ।
toList। এই ফাইলটি আমদানি মধ্যে নিম্নলিখিত স্থাপন দ্বারা সম্পন্ন করা হয়: static import java.util.stream.Collectors.toList;। তারপরে সংগ্রহ কলটি কেবল পড়ে .collect(toList())।
Collectorsমধ্যে বর্গ পছন্দসমূহ -> জাভা -> এডিটর -> সামগ্রী সহায়তা -> প্রিয় । এর পরে, আইডিই পূরণ করতে এবং স্ট্যাটিক আমদানি যুক্ত করতে আপনাকে কেবল toLiহিট সিটিআর + স্পেসে টাইপ করতে হবে toList।
boxed()অংশটি উল্লেখ করার জন্য আপনাকে ধন্যবাদ
আপনি স্ট্রিমে মানচিত্রওঅবজ ()ও ব্যবহার করতে পারেন যা একটি ইনট্ফংশন নেয় এবং এই স্ট্রিমের উপাদানগুলিতে প্রদত্ত ফাংশনটি প্রয়োগের ফলাফলের সমন্বয়ে একটি অবজেক্ট-মূল্যবান স্ট্রিম প্রদান করে।
List<Integer> intList = myIntStream.mapToObj(i->i).collect(Collectors.toList());
boxed()হ'ল এটি ating
আপনি Eclipse সংগ্রহগুলিতে উপলব্ধ আদিম সংগ্রহগুলি ব্যবহার করতে পারেন এবং বক্সিং এড়াতে পারেন।
MutableIntList list =
IntStream.range(1, 5)
.collect(IntArrayList::new, MutableIntList::add, MutableIntList::addAll);
দ্রষ্টব্য: আমি গ্রহন গ্রাহক সংগ্রহের একজন সহযোগী।
MutableIntList list = IntLists.mutable.withAll(IntStream.range(1, 5))
আপনি সংগ্রহ পদ্ধতিটি ব্যবহার করতে পারেন:
IntStream.of(1, 2, 3).collect(ArrayList::new, List::add, List::addAll);
প্রকৃতপক্ষে, আপনি যখন কোনও বস্তুর স্ট্রিমে কল করুন (সংগ্রাহক।
public static <T> Collector<T, ?, List<T>> toList() {
return new Collectors.CollectorImpl(ArrayList::new, List::add, (var0, var1) -> {
var0.addAll(var1);
return var0;
}, CH_ID);
}
দ্রষ্টব্য: আপনি যদি সমান্তরাল সংগ্রহ চালাতে চান তবে তৃতীয় প্যারামিটারটি প্রয়োজনীয়; ক্রমানুসারে সংগ্রহ প্রদানের জন্য কেবল প্রথম দুটি যথেষ্ট হবে।