Rumah > Java > javaTutorial > Aliran Selari Java

Aliran Selari Java

WBOY
Lepaskan: 2024-08-30 16:11:08
asal
660 orang telah melayarinya

Strim selari ialah aliran selari objek yang menyokong pelbagai fungsi yang boleh bertujuan untuk menghasilkan output yang dijangkakan. Strim selari bukan struktur data yang membenarkan pengguna memasukkan input daripada API Koleksi, Tatasusunan, Input Java dan Output. Strim selari tidak mengubah gelagat sebenar fungsi, tetapi ia boleh memberikan output berdasarkan penapis yang digunakan (talian paip). Strim selari ialah sebahagian daripada pengaturcaraan berfungsi Java yang wujud selepas versi Java 8th. Strim selari ialah kelebihan tambahan kepada ungkapan Lambda.

IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Cara untuk melakukan Strim Selari dalam Java

  • kaedah parallelStream()
  • kaedah selari()

Bagaimana Aliran Selari berfungsi dalam Java?

Ia berdasarkan kaedah parallelStream() yang digunakan pada koleksi atau kaedah selari() pada strim.

Sintaks:

List<Object> list=new ArrayList<Object>();
list.parallelStream();
Salin selepas log masuk

Penjelasan:

  • Pertama, kami mencipta koleksi senarai tatasusunan.
  • Pada koleksi tatasusunan menggunakan kaedah paralleStream().
  • Kami membuat kesimpulan bahawa parallelStream() digunakan hanya pada koleksi.

Sintaks:

IntStream inStream=IntStream.rangeClosed(initialValue, finalValue);
inStream.parallel();
Salin selepas log masuk

Penjelasan:

  • Mula-mula, kami mencipta strim IntStream.
  • Kaedah selari() digunakan pada strim.
  • Kami membuat kesimpulan bahawa selari() digunakan hanya pada strim.

Contoh

Diberikan di bawah adalah contoh:

Contoh #1

Aliran selari() digunakan pada Abjad Besar.

Kod:

import java.util.ArrayList;
import java.util.List;
public class ParalleStreamOnAlphabets {
public static void main(String[] args) {
System.out.println("Capital Alphabets before Parallel Stream");
// creating array list for adding alphabets
List<String> capitalAlphabets = new ArrayList<>();
int ascilCode = 65; // Ascii value of A=65 and Z=90
while (ascilCode <= 90) { // iterating ascii values
char alphabets = (char) ascilCode; // converting integer to character
capitalAlphabets.add(String.valueOf(alphabets)); // adding Capital alphabets to list
ascilCode++;// pre increment operator
}
// displaying initial Alphabets
capitalAlphabets.stream().forEach(System.out::println);
System.out.println("Capital Alphabets after Parallel Stream");
// inserting all elements to another list to apply parallelStream
// operation without modifying previous array list
List<String> captatlAlphabetsParalleStream = capitalAlphabets;
//applying parallelStream() on new array list
captatlAlphabetsParalleStream.parallelStream().forEach(System.out::println);
}
}
Salin selepas log masuk

Output:

Aliran Selari Java

Aliran Selari Java

Penjelasan:

  • Seperti yang anda boleh lihat output sebelum menggunakan aliran selari, kami mendapat output secara berurutan.
  • Tetapi apabila kita menggunakan aliran selari, maka kita mendapat cara keluaran zig-zag bermaksud selari.

Contoh #2

Aliran selari() digunakan pada Nombor Genap.

Kod:

import java.util.ArrayList;
import java.util.List;
public class ParallelStreamEvenNumbers {
public static void main(String[] args) {
System.out.println("Even Numbers before Parallel Stream");
// creating array list for adding alphabets
List<Integer> evenNumbers = new ArrayList<Integer>();
for (int number=0;number<=10;number++) { // iterating numbers
if(number%2==0) //if number even go inside the condition
evenNumbers.add(number); //added all even numbers
}
// displaying initial even numbers
evenNumbers.stream().forEach(System.out::println);
System.out.println("Even Numbers before Parallel Stream");
// inserting all elements to another list to apply parallelStream
// operation without modifying previous array list
List<Integer> captatlAlphabetsParalleStream = evenNumbers;
// applying parallelStream() on new array list
captatlAlphabetsParalleStream.parallelStream().forEach(System.out::println);
}
}
Salin selepas log masuk

Output:

Aliran Selari Java

Penjelasan:

  • Seperti yang anda boleh lihat output sebelum menggunakan aliran selari, kami mendapat output secara berurutan.
  • Tetapi apabila kita menggunakan aliran selari, maka kita mendapat cara keluaran zig-zag bermaksud selari.

Contoh #3

ParallelStream() digunakan pada yuran kursus.

Kod:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Stream;
public class ParallelStreamCourseFee {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("How many number would you like to enter=>");
int inputNumber = scanner.nextInt(); // asking user for number count
List<Courses> courseWithFee = new ArrayList<Courses>();// creating array
String coursename = "";
int courseFee = 0;
for (int i = 0; i < inputNumber; i++) {
coursename = scanner.next();//taking course name input
courseFee = scanner.nextInt();//taking course fee input
courseWithFee.add(new Courses(coursename, courseFee));//adding course name and fee
}
//get the stream list which courses fee is >1000
Stream<Courses> list = courseWithFee.parallelStream().filter(e -> e.getCourseFee() > 1000);
//displaying courses count which is fee is >1000
System.out.println("Course Fee above 1000 is=> " + list.count());
scanner.close();
}
}
//courses class
class Courses {
String course;
int courseFee;
public Courses(String course, int courseFee) {
this.course = course;
this.courseFee = courseFee;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public int getCourseFee() {
return courseFee;
}
public void setCourseFee(int courseFee) {
this.courseFee = courseFee;
}
}
Salin selepas log masuk

Output:

Aliran Selari Java

Penjelasan:

  • Seperti yang anda lihat dalam output, kami perlu mengira untuk yuran kursus ialah >1000.

Contoh #4

selari() digunakan pada kiraan Nombor Ganjil.

Kod:

import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
// Taking InStream with range of 1 to 1000
//On rane() applied parallel method
//On parallel() method applied filter to decide whether given number odd or not
//after getting odd numbers we simply displaying odd numnbers count
int oddNumberCount = (int) IntStream.range(1, 1000).parallel().filter(value -> oddOrNot(value)).count();
//displaying odd number count
System.out.println("Count of Odd Number from 1-1000 range is => " + oddNumberCount);
}
public static boolean oddOrNot(int inputNumber) {
//checking first number >0 and then checking range from 1 tom 1000
//next checking odd number or not within nonMatch method
return inputNumber > 0
&& IntStream.rangeClosed(1, inputNumber).noneMatch(temp -> inputNumber % 2 == 0);
}
}
Salin selepas log masuk

Output:

Aliran Selari Java

Penjelasan:

  • Seperti yang anda lihat kaedah selari boleh digunakan dengan aliran sahaja.

Contoh #5

selari() digunakan pada nombor Perdana.

Kod:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.function.IntPredicate;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class ParallelPrimeNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("How many number would you like to enter=>");
int inputNumber = scanner.nextInt(); //asking user for number count
System.out.print("Enter your numbers =>");
List<Integer> listNumbers = new ArrayList<Integer>();//creating array list
for (int i = 0; i < inputNumber; i++) {
listNumbers.add(scanner.nextInt());//adding user elements into an array
}
//checking the entered numbers are prime or not
//filter(ParallelCount::isPrime) ParallelCount is class name and primeNumberOrNot method
List<Integer> primeOut = listNumbers.stream().filter(ParallelPrimeNumber::primeNumberOrNot).collect(Collectors.toList());
System.out.print("Prime number set from your entered numbers is/are=>");
for (Integer i : primeOut) {
System.out.print(i+" ");//displaying prime numbers
}
scanner.close();
}
public static boolean primeNumberOrNot(int i) {
//IntPredicate checks the number whether even, odd, prime etc. based on condition
IntPredicate trueOrNot = index -> i % index == 0;
//return true if entered number is prime else returns false
return i > 1 && IntStream.range(2, i).noneMatch(trueOrNot);
}
}
Salin selepas log masuk

Output:

Aliran Selari Java

Penjelasan:

  • Seperti yang anda lihat dalam kod di atas, walaupun kaedah selari pada strim juga melaksanakan nombor perdana, nombor genap, nombor ganjil, dsb., logik.

Kelebihan dan Aplikasi Java Parallel Stream

Diberikan di bawah adalah kelebihan dan aplikasi:

Kelebihan

  • Meningkatkan penggunaan CPU dengan lebih cekap daripada penapis biasa.
  • Strim selari memproses berbilang data pada satu masa.

Aplikasi

  • Digunakan dengan fungsi Agregat.
  • Digunakan dengan rangka kerja koleksi yang lebih bersaiz.
  • Digunakan dengan strim berurutan.

Kesimpulan

Ia dicapai dengan kaedah parallelStream() pada koleksi dan kaedah parallel() pada strim. Strim selari mengurangkan masa pemprosesan, jadi ia kebanyakannya menggunakan data pengumpulan yang besar.

Atas ialah kandungan terperinci Aliran Selari Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan