JShell একটি ইন্টারেক্টিভ টুল যা সহজ বিবৃতি, অভিব্যক্তি এবং ইত্যাদি. ইনপুট হিসাবে নেয়, এটিকে মূল্যায়ন করে এবং অবিলম্বে ব্যবহারকারীর কাছে ফলাফল প্রিন্ট করে।
টার্মিনাল অপারেশন একটি স্ট্রিম অপারেশন যা একটি ইনপুট হিসাবে স্ট্রিম নেয় এবং ফিরে আসে না কোনো আউটপুট স্ট্রীম। উদাহরণস্বরূপ, একটি টার্মিনাল অপারেশন একটি lambda এ প্রয়োগ করা যেতে পারে অভিব্যক্তি এবং একটি একক ফলাফল প্রদান করে (একটি একক আদি-মান/বস্তু , অথবা একটি একক অবজেক্ট-এর সংগ্রহ ) কমাও() , সর্বোচ্চ() , এবং min() পদ্ধতি হল এই ধরনের কয়েকটি টার্মিনাল অপারেশন।
নিচের কোড স্নিপেটে, আমরা বিভিন্ন টার্মিনাল অপারেশন ব্যবহার করতে পারি:min() , সর্বোচ্চ() , এবং কমাও() JShell-এ পদ্ধতি।
স্নিপেট
jshell> IntStream.range(1, 11).reduce(0, (n1, n2) -> n1 + n2); $1 ==> 55 jshell> List.of(23, 12, 34, 53).stream().max(); | Error: | method max in interface java.util.stream.Stream cannot be applied to given types; | required: java.util.Comparator | found: no arguments | reason: actual and formal argument lists differ in length | List.of(23, 12, 34, 53).stream().max(); | ^----------------------------------^ jshell> List.of(23, 12, 34, 53).stream().max((n1, n2) -> Integer.compare(n1, n2)); $2 ==> Optional[53] jshell> $2.isPresent() $3 ==> true jshell> List.of(23, 12, 34, 53).stream().max((n1, n2) -> Integer.compare(n1, n2)).get(); $4 ==> 53 jshell> List.of(23, 12, 34, 53).stream().filter(e -> e%2==1).forEach(e -> System.out.println(e)) 23 53 jshell> List.of(23, 12, 34, 53).stream().filter(e -> e%2==1).collect(Collectors.toList()); $6 ==> [23, 53] jshell> List.of(23, 12, 34, 53).stream().min((n1, n2) -> Integer.compare(n1, n2)).get(); $8 ==> 12