জাভা 8 এ একটি নতুন অতিরিক্ত প্যাকেজ, যা হিসাবে পরিচিত java.util.stream যোগ করা হয়েছে একটি দক্ষ প্রোগ্রামিং অভিজ্ঞতার জন্য ব্যবহারকারীরা। একটি স্ট্রিমকে একাধিক পদ্ধতি সমর্থন করে অবজেক্টের ক্রম হিসাবে সংজ্ঞায়িত করা যায়। এই নিবন্ধে আমরা স্ট্রিমটি অন্বেষণ করব
নিম্নলিখিত পয়েন্টারগুলি এই নিবন্ধে আচ্ছাদন করা হবে,
স্ট্রিম ইন জাভায় এই নিবন্ধটি শুরু করার আগে, আসুন আমরা কয়েকটি গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি একবার দেখে নিই,
জাভাতে স্ট্রিম: বৈশিষ্ট্যগুলি
- একটি স্ট্রিম কোনও ডেটা কাঠামো নয় এবং উপাদান সংরক্ষণ করে না। সংগ্রহ, অ্যারে বা আই / ও চ্যানেলগুলি সেখান থেকে ইনপুট নেয়।
- স্ট্রিমের উত্স অপারেশন করা হওয়ার পরে এটি অপরিবর্তিত থেকে যায়। উদাহরণস্বরূপ, একটি স্ট্রিম ফিল্টারিং মূল স্ট্রিমটি পরিবর্তনের পরিবর্তে ফিল্টারকারী উপাদান ছাড়াই একটি নতুন স্ট্রিম উত্পাদন করে।
- সংহতকরণ অপারেশন যেমন ফিল্টার, হ্রাস, মিল, অনুসন্ধান ইত্যাদি প্রবাহ দ্বারা সমর্থিত।
- অলসতা স্ট্রিমের একটি বৈশিষ্ট্য হিসাবে বিবেচনা করা যেতে পারে, কারণ এটি কেবল যখন প্রয়োজন হয় কোডগুলি মূল্যায়ন করে।
- স্ট্রিমটিতে উপস্থিত উপাদানগুলির দর্শন কেবল একবার স্ট্রিমের জীবদ্দশায় করা যেতে পারে। উত্সে উপস্থিত একই উপাদানগুলির পুনর্বিবেচনা করতে একটি নতুন স্ট্রিম তৈরি করতে হবে।
জাভাতে স্ট্রিম সম্পর্কিত এই নিবন্ধটি নিয়ে চলন্ত
স্ট্রিম তৈরি হচ্ছে
স্ট্রিমগুলি নিম্নলিখিত পদ্ধতি দ্বারা উত্পন্ন করা যেতে পারে:
- প্রবাহ () - একটি ক্রমিক ধারা প্রবাহিত হয়।সংগ্রহউত্স হিসাবে বিবেচনা করা হয়।
- সমান্তরাল স্ট্রিম () - একটি সমান্তরাল প্রবাহ ফিরে আসে। সংগ্রহকে উত্স হিসাবে বিবেচনা করা হয়।
তালিকার স্ট্রিংস = অ্যারে.এএসলিস্ট ('হ্যালো', '', 'হাই', 'হোলা', 'বোনজৌর', '', 'নমস্তে') তালিকাটি ফিল্টারড = স্ট্রিংস স্ট্রিম ()। ফিল্টার (স্ট্রিং ->! স্ট্রিং)। isEmpty ()) সংগ্রহ করুন (সংগ্রাহক। টোলিস্ট ())
জাভাতে স্ট্রিম সম্পর্কিত এই নিবন্ধটি নিয়ে চলন্ত
স্ট্রিমগুলিতে অপারেশন:
মধ্যবর্তী অপারেশন:
মানচিত্র
সংগ্রহে উপস্থিত উপাদানগুলি আর্গুমেন্ট হিসাবে পাসের পূর্বাভাস অনুযায়ী অন্যান্য অবজেক্টে ম্যাপ করা যায়। নিম্নলিখিত উদাহরণটি মানচিত্রের পদ্ধতি ব্যবহার করে সংখ্যার অনন্য স্কোয়ার প্রদর্শন করতে ব্যবহৃত হয়।
তালিকা নাম্বার = অ্যারে.এএসলিস্ট (5,4,4,2,3,3) তালিকা বর্গক্ষেত্র = num.stream ()। মানচিত্র (y -> y * y) .ডিসিন্ট () সংগ্রহ করুন (সংগ্রহকারী.টলিস্ট ())
ছাঁকনি
এই পদ্ধতিটি ব্যবহার করে একটি মানদণ্ডের ভিত্তিতে উপাদানগুলি সরানো যেতে পারে।
তালিকার নাম = অ্যারে.এএসলিস্ট ('শনিবার', 'রবিবার', 'বৃহস্পতিবার') তালিকা পুনরায় = নাম.স্ট্রিম ()। ফিল্টার (s-> s.startsWith ('এস')) সংগ্রহ করুন (সংগ্রহকারী.টলিস্ট () )
সাজানো
এই পদ্ধতিটি ব্যবহার করে স্ট্রিমটি বাছাই করা যেতে পারে।
তালিকার নাম = অ্যারে.এএসলিস্ট ('শনিবার', 'রবিবার', 'বৃহস্পতিবার') তালিকা পুনরায় = নাম.স্ট্রিম ()। সাজানো () সংগ্রহ করুন (সংগ্রাহক.টলিস্ট ())
জাভাতে স্ট্রিম: টার্মিনাল অপারেশন:
সংগ্রহ
কোনও স্ট্রিমের উপাদানগুলিতে প্রক্রিয়াজাতকরণের ফলাফল সংগ্রহের কাজটি ব্যবহার করে একত্রিত করা যেতে পারে।
তালিকা নাম্বার = অ্যারে.এএসলিস্ট (4,3,2,5,6) পুনরায় সেট করুন = num.stream ()। মানচিত্র (y-> y * y)। নির্বাচন করুন (সংগ্রাহক.সেটসেট ())
প্রতিটির জন্য, প্রত্যেকটির জন্য
এই পদ্ধতিটি স্ট্রিমে উপস্থিত প্রতিটি উপাদানকে পুনরাবৃত্ত করার জন্য ব্যবহৃত হয়।
তালিকা নাম্বার = অ্যারে.এএসলিস্ট (4,3,2,5) নাম.স্ট্রিম ()। মানচিত্র (এক্স-> এক্স * এক্স) .আর জন্য (y-> System.out.println (y))
হ্রাস
এই পদ্ধতিটি ব্যবহার করে স্ট্রিমের উপাদানগুলিকে একক মানে হ্রাস করা যেতে পারে।
তালিকা নাম্বার = অ্যারে.এএসলিস্ট (4,3,2,5) সমান = num.stream ()। ফিল্টার (x-> x% 2 == 0) .ড্রেস (0, (পুনরায়, i) -> পুনরায় + i)
ভেরিয়েবল রেসটি প্রাথমিকভাবে 0 মান নির্ধারিত হয় এবং আমি এতে যুক্ত হয়েছি।
জাভাতে স্ট্রিম সম্পর্কিত এই নিবন্ধটি নিয়ে চলন্ত
ফিল্টারিং
কোডটি স্ট্রিম পদ্ধতিটি ব্যবহার করে ফিল্টার করা যায়। নিম্নলিখিত উদাহরণে, যন্ত্রগুলির দাম ফিল্টার হয়ে যায়।
আমদানি করুন java.util। * আমদানি java.util.stream. সংগ্রাহক শ্রেণীর উপকরণ {int num স্ট্রিং নাম ভাসমান দাম পাবলিক ইনস্ট্রুমেন্ট (int নাম্বার, স্ট্রিং নাম, ফ্লোটের দাম) {this.num = num this.name = name this.price = দাম}} পাবলিক ক্লাস টেস্ট {পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং [] আরগস) instruments তালিকার তালিকা তালিকা = নতুন অ্যারেলিস্ট () // প্রোডাক্ট যুক্ত করা ইন্সট্রুমেন্টস লিস্ট.এডিডি (নতুন ইনস্ট্রুমেন্ট (1, 'গিটার', 15000f)) ইনস্টিটিউটস লিস্ট.এডডি (নতুন উপকরণ (2, 'পিয়ানো', 18000f)) ইনস্ট্রুমেন্টলিস্ট.এডডি (নতুন ইনস্ট্রুমেন্ট (3, 'বাঁশি', 15000f)) ইনস্টিটিউটলিস্ট.এডিডি (নতুন ইনস্ট্রুমেন্ট (4, 'ড্রামস', 48000f)) ইনস্টিটিউটস লিস্ট.এডডি (নতুন ইনস্ট্রুমেন্ট ( 5, 'উকুলেল', 32000f)) তালিকা ইনস্ট্রুমেন্টপ্রাইসলিস্ট 2 = ইনস্ট্রুমেন্টলিস্ট স্ট্রিম ()। ফিল্টার (পি -> পি.প্রাইস> 30000) // ফিল্টারিং ডেটা। ম্যাপ (p-> পি.প্রাইস) // আনার দাম। নির্বাচন করুন ( সংগ্রহকারী.টলিস্ট ()) // তালিকা হিসাবে সংগ্রহ করছে System.out.println (InstrumentPriceList2)}}
আউটপুট:
[48000.0, 32000.0]
জাভাতে স্ট্রিম সম্পর্কিত এই নিবন্ধটি নিয়ে চলন্ত
মূল্যায়ন:
জাভাতে স্ট্রিম ব্যবহার করে ইস্ট্রেশন করা যেতে পারে।
আমদানি করুন java.util.stream। * পাবলিক ক্লাস টেস্ট {পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং [] আরগস) {স্ট্রিম.ইরেট (1, উপাদান-> উপাদান + 1)। ফিল্টার (উপাদান-> উপাদান% 4 == 0)। সীমা (6) .প্রয়োগ (System.out :: println)}
আউটপুট:
ঘ
8
12
16
বিশ
24
জাভাতে স্ট্রিমের ধারণাটি আরও কার্যকরভাবে বোঝার জন্য আসুন আমরা আর একটি উদাহরণ ঘুরে দেখি।
উদাহরণ:
আমদানি করুন java.util। * আমদানি java.util.stream। * পাবলিক ক্লাস টেস্ট {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) {// পূর্ণসংখ্যার একটি তালিকা তৈরি করুন তালিকা num = Arrays.asList (6,7,8,9) ) // মানচিত্রের পদ্ধতি ব্যবহার করে তালিকা বর্গাকার = num.stream ()। মানচিত্র (y -> y * y)। সংগ্রহ (সংগ্রহকারী.টললিস্ট ()) System.out.println (স্কোয়ার) // স্ট্রিং তালিকার একটি তালিকা তৈরি করুন দিনগুলি = অ্যারে.এএসলিস্ট ('শুক্রবার', 'শনিবার', 'রবিবার') // ফিল্টার পদ্ধতির তালিকা পুনরায় = দিন .stream ()। ফিল্টার (s-> s.startsWith ('S'))। সংগ্রহ (সংগ্রহকারী.টললিস্ট ()) System.out.println (পুনরায়) // সাজানো পদ্ধতি তালিকা প্রদর্শন = দিন.স্রোতে ()। সাজানো () সংগ্রহ করুন (সংগ্রহকারী.টলিস্ট ()) System.out.println (প্রদর্শন) / / পূর্ণসংখ্যার একটি তালিকা তৈরি করে তালিকা নম্বর = অ্যারে.এএসলিস্ট (6,9,5,7,1) // সংগ্রহ পদ্ধতিটি সেট সেট করে স্কয়ারসেট = সংখ্যা.স্রোত () মানচিত্র (y-> y * y) প্রদান করে (সংগ্রাহক। টোসেট ()) System.out.println (স্কয়ার সেট) // forEach পদ্ধতি num.stream ()। মানচিত্র (y-> y * y) .ফৌচ (x-> System.out.println (এক্স)) / / পদ্ধতি কমানো সমান = num.stream ()। ফিল্টার (x-> x% 2 == 0) .ড্রেইস (0, (ফলাফল, i) -> ফলাফল + i) System.out.println (এমনকি)}}
আউটপুট:
[৩ 36, ৪৯, 64৪, ৮১]
[শনিবার রবিবার]
[শুক্রবার শনিবার রবিবার]
[81, 49, 1, 36, 25]
36
49
64
81
জাভা কিভাবে tostring ব্যবহার করতে
14
স্ট্রিমগুলি কার্যকরভাবে উপাদানগুলিতে অপারেশন করতে ব্যবহারকারীকে সক্ষম করে।
সুতরাং আমরা এই প্রবন্ধটির শেষে এসেছি ‘জাভায় প্রবাহ’। আপনি যদি আরও শিখতে চান তবে একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা এডুরেকা দ্বারা জাভা প্রশিক্ষণটি দেখুন। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি আপনাকে হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।
আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।