আমি নথির দিকে তাকিয়ে আছি IntStream
, এবং আমি একটি toArray
পদ্ধতি দেখছি , তবে সরাসরি এ-তে যাওয়ার কোনও উপায় নেইList<Integer>
নিশ্চয় একটি উপায় আছে একটি রূপান্তর হয় Stream
একটি থেকে List
?
আমি নথির দিকে তাকিয়ে আছি IntStream
, এবং আমি একটি toArray
পদ্ধতি দেখছি , তবে সরাসরি এ-তে যাওয়ার কোনও উপায় নেইList<Integer>
নিশ্চয় একটি উপায় আছে একটি রূপান্তর হয় Stream
একটি থেকে List
?
উত্তর:
IntStream::boxed
IntStream::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);
}
দ্রষ্টব্য: আপনি যদি সমান্তরাল সংগ্রহ চালাতে চান তবে তৃতীয় প্যারামিটারটি প্রয়োজনীয়; ক্রমানুসারে সংগ্রহ প্রদানের জন্য কেবল প্রথম দুটি যথেষ্ট হবে।