በዚህ የብሎግ ልኡክ ጽሁፍ የጃቫ 8 ዥረት ባህሪያትን ለመወያየት እና ብዙ የተለያዩ የኮድ ምሳሌዎችን እናቀርባለን ፡፡
የጃቫ ዥረቶች ተግባራዊ ፕሮግራሞችን ወደ ጃቫ ያመጣሉ እናም ከጃቫ 8 ጀምሮ ይደገፋሉ ስለዚህ የቆየ የጃቫ ስሪት ካለዎት ከዚያ የጃቫ ዥረቶችን ለመጠቀም ወደ ጃቫ 8 ማሻሻል አለብዎት ፡፡
የጅረቶች አንዳንድ ጥቅሞች-
በአብዛኛዎቹ ሁኔታዎች የጅረቶች ቧንቧ መስመር ሀ
ምንጩ የንጥረ ነገሮችን ጅረት ሊለቅ ነው።
ያ የንጥረ ነገሮች ዥረት ሊጣራ ፣ ሊደረድር ይችላል ፣ ወይም በካርታ ወይም በእያንዲንደ ንጥረ ነገሮች ሊይ የተሇያዩ ሌሎች ተከታታይ ክዋኔዎች ሉሆን ይችሊሌ።
በመጨረሻ ሊሰበሰብም ሆነ ሊቀነስ ወይም ሌላ ተርሚናል ሊሠራ ይችላል ነገር ግን አንድ የተርሚናል ሥራዎች ብቻ ይከናወናሉ ፡፡
የዥረት ምንጭ ከስብስብ ፣ ከዝርዝሮች ፣ ከስብስቦች ፣ ከኢንተር ፣ ከናፍቆት ፣ ከድብል ፣ ከህብረቁምፊዎች ፣ ወዘተ.
የዥረት ክዋኔዎች መካከለኛ ወይም ተርሚናል ናቸው
አንዳንዶቹ መካከለኛ ክዋኔዎች የሚከተሉትን ያካትታሉ:
አንድ የተርሚናል ክወና ብቻ ይፈቀዳል ፡፡
አንዳንድ የመቀነስ ተግባራት ምሳሌዎች-
አሁን በኮድ ምሳሌዎች ውስጥ ከላይ የተጠቀሱትን ፅንሰ-ሐሳቦች እንመልከት ፡፡
የመጀመሪያው ምሳሌ የኢንቲጀር ዥረት ብቻ ነው። IntStream
ን በመጠቀም የኢቲጀር ዥረት እንፈጥራለን የመጠን እና የተለያዩ ተግባራትን የሚሰጠን ነው።
የ forEach
የእኛ ተርሚናል ሥራ ነው ፡፡ ለእያንዳንዱ እቃ እኛ ልክ ልናወጣው ነው ፡፡
import java.io.IOException; import java.util.stream.IntStream; public class JavaStreams {
public static void main(String[] args) throws IOException {
IntStream
.range(1, 10)
.forEach(System.out::print);
System.out.println();
} }
ውጤት
123456789
ሁለተኛው ምሳሌ ኢንቲጀር ዥረት ይጠቀማል ነገር ግን እኛ ታክሏል አንድ skip()
እዚህ ፣ ስለዚህ በዚህ ጉዳይ ላይ የእኛን ጅረት የመጀመሪያዎቹን 5 ንጥረ ነገሮችን እናልፋለን።
ይህ ብቻ እኛ ደግሞ ንጥል ማተም ቀላል lambda አገላለጽ እየተጠቀሙ 9. በኩል ንጥረ 6 ማተም ይሆናል
import java.io.IOException; import java.util.stream.IntStream; public class JavaStreams {
public static void main(String[] args) throws IOException {
IntStream
.range(1, 10)
.skip(5)
.forEach(x -> System.out.println(x));
System.out.println();
} }
ውጤት
6 7 8 9
ሦስተኛው ምሳሌ ፣ እንደገና _ _ + _ | እንጠቀማለን ይሁን እንጂ ነገሮች ያለንን ዥረት ለመፍጠር, እኛ ያንን ከውስጥ አኖረ IntStream
መግለጫ ለህትመት መስመሩ እንደ መለኪያ
የምናተምነው ከ 1 እስከ 5 ያለው ድምር በሌላ አነጋገር ነው ፣ 1 2 3 & 4 የእነዚህን ቁጥሮች ድምር ብቻ ያትማል ፡፡
println()
ውጤት
import java.io.IOException; import java.util.stream.IntStream; public class JavaStreams {
public static void main(String[] args) throws IOException {
System.out.println(
IntStream
.range(1, 5)
.sum());
System.out.println();
} }
ቀጣዩ ምሳሌ 10
ን ይጠቀማል ተግባር ፣ በእውነተኛ ምቹ ነው ፣ ምክንያቱም ብዙ ቁጥርን ፣ ተንሳፋፊ የነጥብ እሴቶችን ወይም ሕብረቁምፊዎችን ወይም ነገሮችን እንኳን በዥረት መልቀቅ ይችላሉ።
በዚህ ምሳሌ ውስጥ እኛ በቀጥታ የፊደል ቅደም ተከተል እናደርጋለን ከዚያ የመጀመሪያውን _2 + _ | በመጠቀም የመጀመሪያውን እቃ እናገኛለን ፡፡ ተግባር ከዚያ ፣ በዝርዝሩ ውስጥ የመጀመሪያውን ንጥል እናውቃለን ብቻ ፡፡
Stream.of
ውጤት
findFirst()
በሚቀጥለው ምሳሌችን ከድርድር ወደ ጅረት እንሄዳለን ፡፡ ከዚያ ለመደርደር ፣ ለማጣራት እና ከዚያ ለማተም እንሄዳለን።
እዚህ እኛ በ | _ + + | የሚጀምሩትን ብቻ እቃዎችን እናጣራለን ፡፡
import java.io.IOException; import java.util.stream.Stream; public class JavaStreams {
ውስጥ የሚወስድ ላምባዳ አገላለፅ እንጠቀማለን ይህም እያንዳንዱ ስም ነው እና ሰዎች ደብዳቤ ጋር መጀመር ይህም ከዚያም ቼኮች
public static void main(String[] args) throws IOException {
Stream.of('Ava', 'Aneri', 'Alberto')
.sorted()
.findFirst()
.ifPresent(System.out::println);
} } Alberto
እና እነዚያን ያስተላልፋል።
ከዚያ እነሱን እንመድባቸዋለን እና ከዚያ ያንን ለሚያልፍ እያንዳንዱ እቃ እኛ እናተምበታለን ፡፡
s
ውጤት
X
አሁን ደግሞ እኛ አንድ int ድርድር ርቢዎች አማካይ መውሰድ የምንችለው እንዴት እንደሆነ እስቲ እንመልከት.
እዚህ እኛ s
እንጠቀማለን ተግባር የመቁጠሪያ ለመልቀቅ ከዚያም እኛ አጠቃቀም ይሄዳሉ import java.io.IOException; import java.util.Arrays; public class JavaStreams {
እያንዳንዱን ቁጥር እያንዳንዱን ቁጥር ወደ አደባባይ ለማውጣት ፡፡
public static void main(String[] args) throws IOException {
String[] names = {'Al', 'Ankit', 'Kushal', 'Brent', 'Sarika', 'amanda', 'Hans', 'Shivika', 'Sarah'};
Arrays.stream(names)
.filter(x -> x.startsWith('S'))
.sorted()
.forEach(System.out::println);
} }
Sarah Sarika Shivika
ውጤት
Arrays.stream()
ከአንድ ኢንቲጀር ይልቅ ሁለቴ እንደሚያወጣ ልብ ይበሉ ፡፡
በዚህ ምሳሌ ውስጥ, እኛ, ዝርዝር ለመልቀቅ እነዚያን ነገሮች ለማጣራት ከዚያም ለማተም ይሄዳሉ.
በ map()
ውስጥ መሆኑን ልብ ይበሉ ተግባር ፣ ሁሉንም ስሞች ወደ ትናንሽ ፊደሎች እንለውጣቸዋለን።
import java.util.Arrays; public class JavaStreams {
public static void main(String[] args) {
Arrays.stream(new int[] {2, 4, 6, 8, 10})
.map(x -> x * x)
.average()
.ifPresent(System.out::println);
} }
ውጤት
44.0
map()
የሚጀምሩ ሦስት ስሞች እንዳሉን ማየት እንችላለን እና ሁሉም በትንሽ ፊደል ውስጥ ናቸው።
በሚቀጥለው ምሳሌችን ከጽሑፍ ፋይል ረድፎችን በዥረት እንለቃለን ፡፡ እኛ ለመደርደር, ለማጣራት እና ለማተም እንሄዳለን.
እስቲ import java.util.Arrays; import java.util.List; public class JavaStreams {
የሚባል ፋይል አለን ብለን እናስብ ከዚህ በታች ከሚታዩ ይዘቶች ጋር
public static void main(String[] args) {
List people = Arrays.asList('Al', 'Ankit', 'Brent', 'Sarika', 'amanda', 'Hans', 'Shivika', 'Sarah');
people
.stream()
.map(String::toLowerCase)
.filter(x -> x.startsWith('a'))
.forEach(System.out::println);
} }
al ankit amanda
እኛ እንጠቀማለን a
ፋይሉ እያንዳንዱ መስመር እኛን ሕብረቁምፊ አንድ ዥረት ለመስጠት ይሄዳል የእኛን ዥረት ለመፍጠር.
አንዴ የእኛን ዥረት ካገኘን እነሱን እንለየው እና ከ 13 ቁምፊዎች በላይ የሆኑ እቃዎችን እናጣራለን እና ከዚያ የቀሩትን ዕቃዎች እናተም ፡፡
_ + _ | | በመጨረሻም, እኛ ማድረግ እንዲሁ ፋይሉን ለመዝጋት አላቸው.
bands.txt
ውጤት
Rolling Stones Lady Gaga Jackson Browne Maroon 5 Arijit Singh Elton John John Mayer CCR Eagles Pink Aerosmith Adele Taylor Swift
ከ 13 በላይ ቁምፊዎች ያላቸውን ሁለት ባንዶች እናገኛለን ፡፡
ለዚህ ምሳሌ ከዚህ በላይ ያለውን የጽሑፍ ፋይል እንጠቀማለን ፡፡
_ + _ | | በመጠቀም Files.lines()
እኛ ደብዳቤዎች የያዙ ዕቃዎች ውጭ ለማጣራት ይፈልጋሉ የሕብረቁምፊ ተግባር ብቻ ነው።
bands.close
ን በመጠቀም ሁሉንም በደብዳቤዎች እንጨምራለን import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Stream; public class JavaStreams {
ወደ ዝርዝር.
public static void main(String[] args) throws IOException {
Stream bands = Files.lines(Paths.get('bands.txt'));
bands
.sorted()
.filter(x -> x.length() > 13)
.forEach(System.out::println);
bands.close();
} }
አንዴ ዝርዝር ካወጣን በኋላ Jackson Browne Rolling Stones
ን መጠቀም እንችላለን ዕቃዎቹን ለማተም ኦፕሬተር ፡፡
jit
ውጤት
x.contains()
በዚህ ምሳሌ ውስጥ ረድፎችን ከሲኤስቪ ፋይል እንለቃለን እና ጥሩዎቹን ረድፎች እንቆጥራለን ፡፡
.collect()
የሚባል ፋይል አለን እንበል ከሚከተሉት ይዘቶች ጋር
jit
እኛ ዥረት ከ አንድ ማስቀረት ይፈልጋሉ እዚህ, ረድፍ ኢ, ምንም ውሂብ የለውም.
በሚከተለው ኮድ ውስጥ በእያንዳንዱ ረድፍ እናነባለን ከዚያም በኮማዎች ላይ ወደ አንድ ድርድር መከፋፈል ያስፈልገናል ስለዚህ እያንዳንዱ ረድፍ የእቃዎች ድርድር ይሆናል ፡፡
ከዚያ ሶስት እቃዎችን የሌሉ ረድፎችን ለማጣራት ማጣሪያን እንተገብራለን ፡፡
forEach
ውጤት
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; public class JavaStreams {
public static void main(String[] args) throws IOException {
List bands2 = Files.lines(Paths.get('bands.txt'))
.filter(x -> x.contains('jit'))
.collect(Collectors.toList());
bands2.forEach(x -> System.out.println(x));
} }
ይህ ምሳሌ ቅነሳን እንዴት እንደሚጠቀሙ ያሳያል። ወደ ድምር እንቀንሳለን ፡፡ እዚህ እኛ Arijit Singh
ን በመጠቀም ድርብ ጅረት አለን ተግባር እኛ በሦስት የተለያዩ እሴቶች ውስጥ ሶስት ደርቦ የገለጿቸው እና ተግባር ለመቀነስ ለመጠቀም ይሄዳሉ.
data.txt
ውጤት
A,12,3.7 B,17,2.8 C,14,1.9 D,23,2.7 E F,18,3.4