JavaRush /ื‘ืœื•ื’ Java /Random-HE /ื”ืคืกืงืช ืงืคื” ืžืก' 177. ืžื“ืจื™ืš ืžืคื•ืจื˜ ืœ-Java Stream ื‘-Java 8

ื”ืคืกืงืช ืงืคื” ืžืก' 177. ืžื“ืจื™ืš ืžืคื•ืจื˜ ืœ-Java Stream ื‘-Java 8

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืžืงื•ืจ: Hackernoon ืคื•ืกื˜ ื–ื” ืžืกืคืง ืžื“ืจื™ืš ืžืคื•ืจื˜ ืขืœ ืขื‘ื•ื“ื” ืขื Java Stream ื™ื—ื“ ืขื ื“ื•ื’ืžืื•ืช ืงื•ื“ ื•ื”ืกื‘ืจื™ื. ื”ืคืกืงืช ืงืคื” ืžืก' 177.  ืžื“ืจื™ืš ืžืคื•ืจื˜ ืœ-Java Stream ื‘-Java 8 - 1

ืžื‘ื•ื ืœ-Java Threads ื‘-Java 8

Java Streams, ืฉื”ื•ืฆื’ื• ื›ื—ืœืง ืž-Java 8, ืžืฉืžืฉื™ื ืœืขื‘ื•ื“ื” ืขื ืื•ืกืคื™ ื ืชื•ื ื™ื. ื”ื ืื™ื ื ืžื‘ื ื” ื ืชื•ื ื™ื ื‘ืขืฆืžื, ืืš ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœื”ื–ื™ืŸ ืžื™ื“ืข ืžืžื‘ื ื™ ื ืชื•ื ื™ื ืื—ืจื™ื ืขืœ ื™ื“ื™ ื”ื–ืžื ื” ื•ืฆื™ื ื•ืจ ื›ื“ื™ ืœื”ืคื™ืง ืชื•ืฆืื” ืกื•ืคื™ืช. ื”ืขืจื”: ื—ืฉื•ื‘ ืœื ืœื‘ืœื‘ืœ ื‘ื™ืŸ Stream ื•-Thread, ืžื›ื™ื•ื•ืŸ ืฉื‘ืจื•ืกื™ืช ืžืชื™ื™ื—ืกื™ื ืœืจื•ื‘ ืœืฉื ื™ ื”ืžื•ื ื—ื™ื ื‘ืื•ืชื• ืชืจื’ื•ื "ื–ืจื™ืžื”". Stream ืžืฆื™ื™ืŸ ืื•ื‘ื™ื™ืงื˜ ืœื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช (ืœืจื•ื‘ ื”ืขื‘ืจื” ืื• ืื—ืกื•ืŸ ื ืชื•ื ื™ื), ื‘ืขื•ื“ Thread (ืชืจื’ื•ื ืžื™ืœื•ืœื™ - thread) ืžืฆื™ื™ืŸ ืื•ื‘ื™ื™ืงื˜ ื”ืžืืคืฉืจ ื‘ื™ืฆื•ืข ืฉืœ ืงื•ื“ ืชื•ื›ื ื™ืช ืžืกื•ื™ื ื‘ืžืงื‘ื™ืœ ืœืขื ืคื™ ืงื•ื“ ืื—ืจื™ื. ืžื›ื™ื•ื•ืŸ ืฉ-stream ืื™ื ื• ืžื‘ื ื” ื ืชื•ื ื™ื ื ืคืจื“, ื”ื•ื ืœืขื•ืœื ืœื ืžืฉื ื” ืืช ืžืงื•ืจ ื”ื ืชื•ื ื™ื. ืœื–ืจืžื™ Java ื™ืฉ ืืช ื”ืชื›ื•ื ื•ืช ื”ื‘ืื•ืช:
  1. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Java Stream ื‘ืืžืฆืขื•ืช ื—ื‘ื™ืœืช "java.util.stream". ื ื™ืชืŸ ืœื™ื™ื‘ื ืื•ืชื• ืœืกืงืจื™ืคื˜ ื‘ืืžืฆืขื•ืช ื”ืงื•ื“:

    import java.util.stream.* ;

    ื‘ืืžืฆืขื•ืช ืงื•ื“ ื–ื”, ื ื•ื›ืœ ื’ื ืœื™ื™ืฉื ื‘ืงืœื•ืช ืžืกืคืจ ืคื•ื ืงืฆื™ื•ืช ืžื•ื‘ื ื•ืช ื‘-Java Stream.

  2. Java Stream ื™ื›ื•ืœ ืœืงื‘ืœ ืงืœื˜ ืžืื•ืกืคื™ ื ืชื•ื ื™ื ื›ื’ื•ืŸ ืื•ืกืคื™ื ื•ืžืขืจื›ื™ื ื‘-Java.

  3. Java Stream ืื™ื ื• ื“ื•ืจืฉ ืฉื™ื ื•ื™ ืžื‘ื ื” ื ืชื•ื ื™ ื”ืงืœื˜.

  4. Java Stream ืœื ืžืฉื ื” ืืช ื”ืžืงื•ืจ. ื‘ืžืงื•ื ื–ืืช, ื”ื•ื ืžื™ื™ืฆืจ ืคืœื˜ ื‘ืืžืฆืขื•ืช ืฉื™ื˜ื•ืช ืฆื™ื ื•ืจ ืžืชืื™ืžื•ืช.

  5. ื–ืจืžื™ Java ื›ืคื•ืคื™ื ืœืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื•ืžืกื•ืฃ, ืขืœื™ื”ื ื ื“ื•ืŸ ื‘ืกืขื™ืคื™ื ื”ื‘ืื™ื.

  6. ื‘-Java Stream, ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืžืชื‘ืฆืขื•ืช ื‘ืฆื ืจืช ื•ืžืชืจื—ืฉื•ืช ื‘ืคื•ืจืžื˜ ื”ืขืจื›ื” ืขืฆืœืŸ. ื”ื ืžืกืชื™ื™ืžื™ื ื‘ืคื•ื ืงืฆื™ื•ืช ืžืกื•ืฃ. ื–ื” ืžื”ื•ื•ื” ืืช ื”ืคื•ืจืžื˜ ื”ื‘ืกื™ืกื™ ืœืฉื™ืžื•ืฉ ื‘-Java Stream.

ื‘ืกืขื™ืฃ ื”ื‘ื, ื ื‘ื—ืŸ ืืช ื”ืฉื™ื˜ื•ืช ื”ืฉื•ื ื•ืช ื”ืžืฉืžืฉื•ืช ื‘-Java 8 ืœื™ืฆื™ืจืช ื–ืจื Java ืœืคื™ ื”ืฆื•ืจืš.

ื™ืฆื™ืจืช ื–ืจื Java ื‘-Java 8

ื ื™ืชืŸ ืœื™ืฆื•ืจ ืฉืจืฉื•ืจื™ Java ื‘ื›ืžื” ื“ืจื›ื™ื:

1. ื™ืฆื™ืจืช ื–ืจื ืจื™ืง ื‘ืฉื™ื˜ืช Stream.empty()

ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ื–ืจื ืจื™ืง ืœืฉื™ืžื•ืฉ ืžืื•ื—ืจ ื™ื•ืชืจ ื‘ืงื•ื“ ืฉืœืš. ืื ืืชื” ืžืฉืชืžืฉ ื‘ืฉื™ื˜ืช Stream.empty() , ื™ื™ื•ื•ืฆืจ ื–ืจื ืจื™ืง, ืฉืื™ื ื• ืžื›ื™ืœ ืขืจื›ื™ื. ื”ื–ืจื ื”ืจื™ืง ื”ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ ืื ื‘ืจืฆื•ื ื ื• ืœื“ืœื’ ืขืœ ื—ืจื™ื’ ืžืฆื‘ื™ืข null ื‘ื–ืžืŸ ืจื™ืฆื”. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” ื”ื‘ืื”:
Stream<String> str = Stream.empty();
ื”ื”ืฆื”ืจื” ืฉืœืขื™ืœ ืชื™ืฆื•ืจ ื–ืจื ืจื™ืง ื‘ืฉื str ืœืœื ืืœืžื ื˜ื™ื ื›ืœืฉื”ื ื‘ืชื•ื›ื•. ื›ื“ื™ ืœืืžืช ื–ืืช, ืคืฉื•ื˜ ื‘ื“ื•ืง ืืช ืžืกืคืจ ืื• ื’ื•ื“ืœ ื”ื–ืจื ื‘ืืžืฆืขื•ืช ื”ืžื•ื ื— str.count() . ืœื“ื•ื’ืžื”,
System.out.println(str.count());
ื›ืชื•ืฆืื” ืžื›ืš, ื ืงื‘ืœ 0 ื‘ืคืœื˜ .

2. ืฆื•ืจ ื–ืจื ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช Stream.builder() ืขื ืžื•ืคืข Stream.Builder

ืื ื• ื™ื›ื•ืœื™ื ื’ื ืœื”ืฉืชืžืฉ ื‘-Stream Builder ื›ื“ื™ ืœื™ืฆื•ืจ ื–ืจื ื‘ืืžืฆืขื•ืช ืชื‘ื ื™ืช ื”ืขื™ืฆื•ื‘ ืฉืœ ื”-Builder. ื”ื•ื ืžื™ื•ืขื“ ืœื‘ื ื™ื™ื” ืฉืœื‘ ืื—ืจ ืฉืœื‘ ืฉืœ ื—ืคืฆื™ื. ื‘ื•ืื• ื ืจืื” ื›ื™ืฆื“ ื ื•ื›ืœ ืœื™ืฆื•ืจ ืžื•ืคืข ืฉืœ ื–ืจื ื‘ืืžืฆืขื•ืช ื‘ื•ื ื” ื–ืจืžื™ื .
Stream.Builder<Integer> numBuilder = Stream.builder();

numBuilder.add(1).add(2).add( 3);

Stream<Integer> numStream = numBuilder.build();
ื‘ืืžืฆืขื•ืช ืงื•ื“ ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ื–ืจื ื‘ืฉื numStream ื”ืžื›ื™ืœ ืจื›ื™ื‘ื™ int . ื”ื›ืœ ื ืขืฉื” ื“ื™ ืžื”ืจ ื”ื•ื“ื•ืช ืœืžื•ืคืข Stream.Builder ืฉื ืงืจื numBuilder ืฉื ื•ืฆืจ ืจืืฉื•ืŸ.

3. ืฆื•ืจ ื–ืจื ืขื ื”ืขืจื›ื™ื ืฉืฆื•ื™ื ื• ื‘ืฉื™ื˜ืช Stream.of()

ื“ืจืš ื ื•ืกืคืช ืœื™ืฆื•ืจ ื–ืจื ื›ื•ืœืœืช ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช Stream.of() . ื–ื•ื”ื™ ื“ืจืš ืคืฉื•ื˜ื” ืœื™ืฆื•ืจ ื–ืจื ืขื ืขืจื›ื™ื ื ืชื•ื ื™ื. ื”ื•ื ืžืฆื”ื™ืจ ื•ื’ื ืžืืชื—ืœ ืืช ื”ืฉืจืฉื•ืจ. ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช Stream.of() ืœื™ืฆื™ืจืช ื–ืจื:
Stream<Integer> numStream = Stream.of(1, 2, 3);
ืงื•ื“ ื–ื” ื™ืฆื•ืจ ื–ืจื ื”ืžื›ื™ืœ ืจื›ื™ื‘ื™ int , ื‘ื“ื™ื•ืง ื›ืžื• ืฉืขืฉื™ื ื• ื‘ืฉื™ื˜ื” ื”ืงื•ื“ืžืช ื‘ืืžืฆืขื•ืช Stream.Builder . ื›ืืŸ ื™ืฆืจื ื• ื–ืจื ื™ืฉื™ืจื•ืช ื‘ืืžืฆืขื•ืช Stream.of() ืขื ืขืจื›ื™ื ืžื•ื’ื“ืจื™ื ืžืจืืฉ [1, 2 ื•-3] .

4. ืฆื•ืจ ื–ืจื ืžืžืขืจืš ืงื™ื™ื ื‘ืฉื™ื˜ืช Arrays.stream()

ืฉื™ื˜ื” ื ืคื•ืฆื” ื ื•ืกืคืช ืœื™ืฆื™ืจืช ืฉืจืฉื•ืจ ื›ื•ืœืœืช ืฉื™ืžื•ืฉ ื‘ืžืขืจื›ื™ื ื‘-Java. ื”ื–ืจื ื›ืืŸ ื ื•ืฆืจ ืžืžืขืจืš ืงื™ื™ื ื‘ืฉื™ื˜ืช Arrays.stream() . ื›ืœ ืจื›ื™ื‘ื™ ื”ืžืขืจืš ืžื•ืžืจื™ื ืœืจื›ื™ื‘ื™ ื–ืจื. ื”ื ื” ื“ื•ื’ืžื” ื˜ื•ื‘ื”:
Integer[] arr = {1, 2, 3, 4, 5};

Stream<Integer> numStream = Arrays.stream(arr);
ืงื•ื“ ื–ื” ื™ืคื™ืง numStream ื”ืžื›ื™ืœ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืžืขืจืš ืฉื ืงืจื arr, ืฉื”ื•ื ืžืขืจืš ืฉืœืžื™ื.

5. ืžื™ื–ื•ื’ ืฉื ื™ ื–ืจืžื™ื ืงื™ื™ืžื™ื ื‘ืฉื™ื˜ืช Stream.concat()

ืฉื™ื˜ื” ื ื•ืกืคืช ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื” ืœื™ืฆื™ืจืช ื–ืจื ื”ื™ื ื”ืฉื™ื˜ื” Stream.concat() . ื”ื•ื ืžืฉืžืฉ ืœืฉื™ืœื•ื‘ ืฉื ื™ ื—ื•ื˜ื™ื ืœื™ืฆื™ืจืช ื—ื•ื˜ ื‘ื•ื“ื“. ืฉื ื™ ื”ื–ืจืžื™ื ืžืฉื•ืœื‘ื™ื ืœืคื™ ื”ืกื“ืจ. ื–ื” ืื•ืžืจ ืฉื”ื—ื•ื˜ ื”ืจืืฉื•ืŸ ืžื’ื™ืข ืจืืฉื•ืŸ, ื•ืื—ืจื™ื• ื”ื—ื•ื˜ ื”ืฉื ื™, ื•ื›ืŸ ื”ืœืื”. ื“ื•ื’ืžื” ืœืฉืจืฉื•ืจ ื›ื–ื” ื ืจืื™ืช ื›ืš:
Stream<Integer> numStream1 = Stream.of(1, 2, 3, 4, 5);

Stream<Integer> numStream2 = Stream.of(1, 2, 3);

Stream<Integer> combinedStream = Stream.concat( numStream1, numStream2);
ื”ื”ืฆื”ืจื” ืœืขื™ืœ ืชื™ืฆื•ืจ ื–ืจื ืกื•ืคื™ ื‘ืฉื combinedStream ื”ืžื›ื™ืœ ืืœืžื ื˜ื™ื ืฉืœ ื”ื–ืจื ื”ืจืืฉื•ืŸ numStream1 ื•ื”ื–ืจื ื”ืฉื ื™ numStream2 ื‘ื–ื” ืื—ืจ ื–ื” .

ืกื•ื’ื™ ืคืขื•ืœื•ืช ืขื Java Stream

ื›ืคื™ ืฉื›ื‘ืจ ืฆื™ื™ื ื•, ื ื™ืชืŸ ืœื‘ืฆืข ืฉื ื™ ืกื•ื’ื™ ืคืขื•ืœื•ืช ืขื Java Stream ื‘-Java 8: ื‘ื™ื ื•ื ื™ ื•ืžืกื•ืฃ. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื›ืœ ืื—ื“ ืžื”ื ื‘ื™ืชืจ ืคื™ืจื•ื˜.

ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื

ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืžื™ื™ืฆืจื•ืช ื–ืจื ืคืœื˜ ื•ืžื‘ื•ืฆืขื•ืช ืจืง ื›ืืฉืจ ื ืชืงืœื™ื ื‘ืคืขื•ืœืช ื˜ืจืžื™ื ืœ. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืžื‘ื•ืฆืขื•ืช ื‘ืขืฆืœืชื™ื™ื, ื‘ืฆื ืจืช, ื•ื ื™ืชืŸ ืœื”ืฉืœื™ื ืื•ืชืŸ ืจืง ืขืœ ื™ื“ื™ ืคืขื•ืœืช ื˜ืจืžื™ื ืœ. ืขืœ ื”ืขืจื›ื” ืขืฆืœื ื™ืช ื•ืฆื ืจืช ืชืœืžื“ื• ืงืฆืช ืžืื•ื—ืจ ื™ื•ืชืจ. ื“ื•ื’ืžืื•ืช ืœืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื”ืŸ ื”ืฉื™ื˜ื•ืช ื”ื‘ืื•ืช: filter() , map() , different() , peek() , sorted() ื•ืขื•ื“ ื›ืžื”.

ืชืคืขื•ืœ ืžืกื•ืฃ

ืคืขื•ืœื•ืช ื˜ืจืžื™ื ืœ ืžืฉืœื™ืžื•ืช ืืช ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื•ื’ื ืžื—ื–ื™ืจื•ืช ืืช ื”ืชื•ืฆืื•ืช ื”ืกื•ืคื™ื•ืช ืฉืœ ื–ืจื ื”ืคืœื˜. ืžื›ื™ื•ื•ืŸ ืฉืคืขื•ืœื•ืช ื˜ืจืžื™ื ืœ ืžืื•ืชืชื•ืช ืขืœ ืกื™ื•ื ื”ื‘ื™ืฆื•ืข ื”ืขืฆืœ ื•ื”ืฆื ืจืช, ืœื ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื—ื•ื˜ ื–ื” ืฉื•ื‘ ืœืื—ืจ ืฉื”ื•ื ืขื‘ืจ ืคืขื•ืœืช ื˜ืจืžื™ื ืœ. ื“ื•ื’ืžืื•ืช ืœืคืขื•ืœื•ืช ืžืกื•ืฃ ื”ืŸ ื”ืฉื™ื˜ื•ืช ื”ื‘ืื•ืช: forEach() , collect() , count() , reduce() ื•ื›ืŸ ื”ืœืื”.

ื“ื•ื’ืžืื•ืช ืœืคืขื•ืœื•ืช ืขื Java Stream

ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื

ื”ื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช ืœื›ืžื” ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืฉื ื™ืชืŸ ืœื”ื—ื™ืœ ืขืœ ื–ืจื Java:

ืœึฐืกึทื ึตืŸ()

ืฉื™ื˜ื” ื–ื• ืžืฉืžืฉืช ืœืกื™ื ื•ืŸ ืืœืžื ื˜ื™ื ืžื–ืจื ื”ืชื•ืืžื™ื ืœืคืจื“ื™ืงื˜ ืกืคืฆื™ืคื™ ื‘-Java. ื”ืคืจื™ื˜ื™ื ื”ืžืกื•ื ื ื ื™ื ื”ืืœื” ืžืจื›ื™ื‘ื™ื ื–ืจื ื—ื“ืฉ. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื“ื•ื’ืžื” ื›ื“ื™ ืœื”ื‘ื™ืŸ ื˜ื•ื‘ ื™ื•ืชืจ.
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); List<Integer> even = numStream.filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(even);
ืกื™ื›ื•ื:
[98]
ื”ืกื‘ืจ: ื‘ื“ื•ื’ืžื” ื–ื•, ื ื™ืชืŸ ืœืจืื•ืช ืฉืืคื™ืœื• ืืœืžื ื˜ื™ื (ื”ืžืชื—ืœืงื™ื ื‘-2) ืžืกื•ื ื ื™ื ื‘ืฉื™ื˜ืช filter() ื•ืžืื•ื—ืกื ื™ื ื‘ืจืฉื™ืžืช ืžืกืคืจื™ื ืฉืœืžื™ื numStream , ืฉืชื•ื›ื ื” ืžื•ื“ืคืก ืžืื•ื—ืจ ื™ื•ืชืจ. ืžื›ื™ื•ื•ืŸ ืฉ-98 ื”ื•ื ื”ืžืกืคืจ ื”ืฉืœื ื”ื–ื•ื’ื™ ื”ื™ื—ื™ื“ ื‘ื–ืจื, ื”ื•ื ืžื•ื“ืคืก ื‘ืคืœื˜.

ืžึทืคึผึธื”()

ืฉื™ื˜ื” ื–ื• ืžืฉืžืฉืช ืœื™ืฆื™ืจืช ื–ืจื ื—ื“ืฉ ืขืœ ื™ื“ื™ ื‘ื™ืฆื•ืข ืคื•ื ืงืฆื™ื•ืช ืžืžื•ืคื” ืขืœ ืืœืžื ื˜ื™ื ืฉืœ ื–ืจื ื”ืงืœื˜ ื”ืžืงื•ืจื™. ืื•ืœื™ ืœื–ืจื ื”ื—ื“ืฉ ื™ืฉ ืกื•ื’ ื ืชื•ื ื™ื ืื—ืจ. ื”ื“ื•ื’ืžื” ื ืจืื™ืช ื›ืš:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); List<Integer> d = numStream.map(n -> n*2) .collect(Collectors.toList()); System.out.println(d);
ืกื™ื›ื•ื:
[86, 130, 2, 196, 126]
ื”ืกื‘ืจ: ื›ืืŸ ืื ื• ืจื•ืื™ื ืฉืฉื™ื˜ืช map() ืžืฉืžืฉืช ืคืฉื•ื˜ ืœื”ื›ืคื™ืœ ื›ืœ ืจื›ื™ื‘ ื‘ื–ืจื numStream . ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ืžื”ืคืœื˜, ื›ืœ ืื—ื“ ืžื”ืืœืžื ื˜ื™ื ื‘ื–ืจื ื”ื•ื›ืคืœ ื‘ื”ืฆืœื—ื”.

ืžื•ึผื‘ื”ึธืง()

ืฉื™ื˜ื” ื–ื• ืžืฉืžืฉืช ืœืื—ื–ื•ืจ ืจืง ืืœืžื ื˜ื™ื ื‘ื•ื“ื“ื™ื ื‘ื–ืจื ืขืœ ื™ื“ื™ ืกื™ื ื•ืŸ ื›ืคื™ืœื•ื™ื•ืช. ื“ื•ื’ืžื” ืœืื•ืชื• ื“ื‘ืจ ื ืจืื™ืช ื›ืš:
Stream<Integer> numStream = Stream.of(43,65,1,98,63,63,1); List<Integer> numList = numStream.distinct() .collect(Collectors.toList()); System.out.println(numList);
ืกื™ื›ื•ื:
[43, 65, 1, 98, 63]
ื”ืกื‘ืจ: ื‘ืžืงืจื” ื–ื”, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช different() ืขื‘ื•ืจ numStream . ื”ื•ื ืžืื—ื–ืจ ืืช ื›ืœ ื”ืืœืžื ื˜ื™ื ื”ื‘ื•ื“ื“ื™ื ื‘-numList ืขืœ ื™ื“ื™ ื”ืกืจืช ื›ืคื™ืœื•ื™ื•ืช ืžื”ื–ืจื. ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ืžื”ืคืœื˜, ืื™ืŸ ื›ืคื™ืœื•ื™ื•ืช, ื‘ื ื™ื’ื•ื“ ืœื–ืจื ื”ืงืœื˜, ืฉื‘ื”ืชื—ืœื” ื”ื™ื• ืœื• ืฉื ื™ ื›ืคื™ืœื•ื™ื•ืช (63 ื•-1).

ืœึฐื”ึธืฆึดื™ืฅ()

ืฉื™ื˜ื” ื–ื• ืžืฉืžืฉืช ืœืžืขืงื‘ ืื—ืจ ืฉื™ื ื•ื™ื™ื ื‘ื™ื ื™ื™ื ืœืคื ื™ ื‘ื™ืฆื•ืข ืคืขื•ืœืช ื˜ืจืžื™ื ืœ. ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-peek() ื›ื“ื™ ืœื‘ืฆืข ืคืขื•ืœื” ื‘ื›ืœ ืืœืžื ื˜ ืฉืœ ื–ืจื ื›ื“ื™ ืœื™ืฆื•ืจ ื–ืจื ืฉืขืœื™ื• ื ื™ืชืŸ ืœื‘ืฆืข ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื ื•ืกืคื•ืช.
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); List<Integer> nList = numStream.map(n -> n*10) .peek(n->System.out.println("Mapped: "+ n)) .collect(Collectors.toList()); System.out.println(nList);
ืกื™ื›ื•ื:
ืžืžื•ืคื”: 430 ืžืžื•ืคื”: 650 ืžืžื•ืคื”: 10 ืžืžื•ืคื”: 980 ืžืžื•ืคื”: 630 [430, 650, 10, 980, 630]
ื”ืกื‘ืจ: ื›ืืŸ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช peek() ืœื™ืฆื™ืจืช ืชื•ืฆืื•ืช ื‘ื™ื ื™ื™ื ื›ืืฉืจ ืฉื™ื˜ืช map() ืžื™ื•ืฉืžืช ืขืœ ืจื›ื™ื‘ื™ ื”ื–ืจื. ื›ืืŸ ืื ื• ื™ื›ื•ืœื™ื ืœืฉื™ื ืœื‘ ืฉืขื•ื“ ืœืคื ื™ ื”ืฉื™ืžื•ืฉ ื‘ืคืขื•ืœืช ื”ื˜ืจืžื™ื ืœ collect() ื›ื“ื™ ืœื”ื“ืคื™ืก ืืช ื”ืชื•ื›ืŸ ื”ืกื•ืคื™ ืฉืœ ื”ืจืฉื™ืžื” ื‘- print statement , ื”ืชื•ืฆืื” ืขื‘ื•ืจ ื›ืœ ืžื™ืคื•ื™ ืจื›ื™ื‘ื™ ื–ืจื ืžื•ื“ืคืกืช ื‘ืจืฆืฃ ืžืจืืฉ.

ืžึฐืžื•ึผื™ึธืŸ()

ื”ืฉื™ื˜ื” sorted() ืžืฉืžืฉืช ืœืžื™ื•ืŸ ื”ืืœืžื ื˜ื™ื ืฉืœ ื–ืจื. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ื•ื ืžืžื™ื™ืŸ ืืœืžื ื˜ื™ื ื‘ืกื“ืจ ืขื•ืœื”. ื ื™ืชืŸ ื’ื ืœืฆื™ื™ืŸ ืกื“ืจ ืžื™ื•ืŸ ืžืกื•ื™ื ื›ืคืจืžื˜ืจ. ื™ื™ืฉื•ื ืœื“ื•ื’ืžื” ืฉืœ ืฉื™ื˜ื” ื–ื• ื ืจืื” ื›ืš:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); numStream.sorted().forEach(n -> System.out.println(n));
ืกื™ื›ื•ื:
1 43 โ€‹โ€‹63 65 98
ื”ืกื‘ืจ: ื›ืืŸ, ื”ืฉื™ื˜ื” sorted() ืžืฉืžืฉืช ื›ื“ื™ ืœืžื™ื™ืŸ ืืช ืจื›ื™ื‘ื™ ื”ื–ืจื ื‘ืกื“ืจ ืขื•ืœื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ (ืžื›ื™ื•ื•ืŸ ืฉืœื ืฆื•ื™ืŸ ืกื“ืจ ืกืคืฆื™ืคื™). ื ื™ืชืŸ ืœืจืื•ืช ืฉื”ืคืจื™ื˜ื™ื ื”ืžื•ื“ืคืกื™ื ื‘ืคืœื˜ ืžืกื•ื“ืจื™ื ื‘ืกื“ืจ ืขื•ืœื”.

ืชืคืขื•ืœ ืžืกื•ืฃ

ื”ื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช ืœื›ืžื” ืคืขื•ืœื•ืช ืžืกื•ืฃ ืฉื ื™ืชืŸ ืœื”ื—ื™ืœ ืขืœ ื–ืจืžื™ Java:

ืœื›ืœ ืื—ื“()

ื”ืฉื™ื˜ื” forEach() ืžืฉืžืฉืช ื›ื“ื™ ืœื—ื–ื•ืจ ืขืœ ื›ืœ ื”ืืœืžื ื˜ื™ื ืฉืœ ื–ืจื ื•ืœื‘ืฆืข ืืช ื”ืคื•ื ืงืฆื™ื” ื‘ื›ืœ ืืœืžื ื˜ ืื—ื“ ืื—ื“. ื–ื” ืคื•ืขืœ ื›ื—ืœื•ืคื” ืœื”ืฆื”ืจื•ืช ืœื•ืœืื” ื›ื’ื•ืŸ for , while ื•ืื—ืจื•ืช. ื“ื•ื’ืžื:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); numStream.forEach(n -> System.out.println(n));
ืกื™ื›ื•ื:
43 65 1 98 63
ื”ืกื‘ืจ: ื›ืืŸ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช forEach() ื›ื“ื™ ืœื”ื“ืคื™ืก ื›ืœ ืจื›ื™ื‘ ื‘ื–ืจื ืื—ื“ ืื—ื“.

ืœืกืคื•ืจ()

ืฉื™ื˜ืช count() ืžืฉืžืฉืช ื›ื“ื™ ืœืื—ื–ืจ ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ืืœืžื ื˜ื™ื ื”ืงื™ื™ืžื™ื ื‘ื–ืจื. ื–ื” ื“ื•ืžื” ืœืฉื™ื˜ืช size() , ื”ืžืฉืžืฉืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ืืœืžื ื˜ื™ื ื‘ืื•ืกืฃ. ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช count() ืขื ื–ืจื Java ื”ื™ื ื›ื“ืœืงืžืŸ:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); System.out.println(numStream.count());
ืกื™ื›ื•ื:
5
ื”ืกื‘ืจ: ืžื›ื™ื•ื•ืŸ ืฉ- numStream ืžื›ื™ืœ 5 ืืœืžื ื˜ื™ื ืฉืœืžื™ื, ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช count() ืขืœื™ื• ื™ื•ืฆื™ื 5.

ืœืืกื•ืฃ()

ืฉื™ื˜ืช collect() ืžืฉืžืฉืช ืœื‘ื™ืฆื•ืข ื”ืคื—ืชื•ืช ื”ื ื™ืชื ื•ืช ืœืฉื™ื ื•ื™ ืฉืœ ืจื›ื™ื‘ื™ ื–ืจื. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ืกื™ืจ ืชื•ื›ืŸ ืžื–ืจื ืœืื—ืจ ื”ืฉืœืžืช ื”ืขื™ื‘ื•ื“. ื”ื•ื ืžืฉืชืžืฉ ื‘ืžื—ืœืงื” Collector ื›ื“ื™ ืœื‘ืฆืข ื”ืคื—ืชื•ืช .
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); List<Integer> odd = numStream.filter(n -> n % 2 == 1) .collect(Collectors.toList()); System.out.println(odd);
ืกื™ื›ื•ื:
[43, 65, 1, 63]
ื”ืกื‘ืจ: ื‘ื“ื•ื’ืžื” ื–ื•, ื›ืœ ื”ืจื›ื™ื‘ื™ื ื”ืื™-ื–ื•ื’ื™ื™ื ื‘ื–ืจื ืžืกื•ื ื ื™ื ื•ื ืืกืคื™ื/ืžืฆื•ืžืฆืžื™ื ืœืจืฉื™ืžื” ื‘ืฉื ืื™-ื–ื•ื’ื™ . ื‘ืกื•ืฃ ืžื•ื“ืคืกืช ืจืฉื™ืžื” ืฉืœ ืžื•ื–ืจื™ื.

min() ื•ืžืงืก ()

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ืช min() , ื›ืคื™ ืฉื”ืฉื ืžืจืžื–, ื‘ื–ืจื ื›ื“ื™ ืœืžืฆื•ื ืืช ื”ืืœืžื ื˜ ื”ืžื™ื ื™ืžืœื™ ื‘ื•. ื‘ืื•ืคืŸ ื“ื•ืžื”, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ืช max() ื›ื“ื™ ืœืžืฆื•ื ืืช ื”ืืœืžื ื˜ ื”ืžืงืกื™ืžืœื™ ื‘ื–ืจื. ื‘ื•ืื• ื ื ืกื” ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืืžืฆืขื•ืช ื“ื•ื’ืžื”:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); int smallest = numStream.min((m, n) -> Integer.compare(m, n)).get(); System.out.println("Smallest element: " + smallest);
numStream = Stream.of(43, 65, 1, 98, 63); int largest = numStream.max((m, n) -> Integer.compare(m, n)).get(); System.out.println("Largest element: " + largest);
ืกื™ื›ื•ื:
ื”ืืœืžื ื˜ ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ: 1 ื”ืืœืžื ื˜ ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ: 98
ื”ืกื‘ืจ: ื‘ื“ื•ื’ืžื” ื–ื•, ื”ื“ืคืกื ื• ืืช ื”ืืœืžื ื˜ ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ ื‘-numStream ื‘ืฉื™ื˜ืช min () ื•ืืช ื”ืืœืžื ื˜ ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ ื‘ืฉื™ื˜ืช max() . ืฉื™ืžื• ืœื‘ ืฉื›ืืŸ, ืœืคื ื™ ื”ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช max() , ื”ื•ืกืคื ื• ืฉื•ื‘ ืืœืžื ื˜ื™ื ืœ- numStream . ื”ืกื™ื‘ื” ืœื›ืš ื”ื™ื ืฉ-min() ื”ื™ื ืคืขื•ืœืช ื˜ืจืžื™ื ืœ ื•ืžืฉืžื™ื“ื” ืืช ื”ืชื•ื›ืŸ ืฉืœ ื”ื–ืจื ื”ืžืงื•ืจื™, ื•ืžื—ื–ื™ืจื” ืจืง ืืช ื”ืชื•ืฆืื” ื”ืกื•ืคื™ืช (ืฉื‘ืžืงืจื” ื–ื” ื”ื™ื™ืชื” ื”ืžืกืคืจ ื”ืฉืœื "ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ").

findAny() ื•- findFirst()

findAny() ืžื—ื–ื™ืจ ื›ืœ ืจื›ื™ื‘ ื‘ื–ืจื ื›ืื•ืคืฆื™ื•ื ืœื™ . ืื ื”ื–ืจื ืจื™ืง, ื”ื•ื ื™ื—ื–ื™ืจ ื’ื ืขืจืš ืื•ืคืฆื™ื•ื ืœื™ , ืฉื™ื”ื™ื” ืจื™ืง. findFirst() ืžื—ื–ื™ืจ ืืช ื”ืจื›ื™ื‘ ื”ืจืืฉื•ืŸ ืฉืœ ื”ื–ืจื ื›ืื•ืคืฆื™ื•ื ืœื™ . ื›ืžื• ื‘ืฉื™ื˜ืช findAny() , ื’ื ืฉื™ื˜ืช findFirst() ืžื—ื–ื™ืจื” ืคืจืžื˜ืจ ืื•ืคืฆื™ื•ื ืœื™ ืจื™ืง ืื ื”ื–ืจื ื”ืžืชืื™ื ืจื™ืง. ื”ื‘ื” ื ืกืชื›ืœ ืขืœ ื”ื“ื•ื’ืžื” ื”ื‘ืื” ื”ืžื‘ื•ืกืกืช ืขืœ ืฉื™ื˜ื•ืช ืืœื”:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); Optional<Integer> opt = numStream.findFirst();System.out.println(opt); numStream = Stream.empty(); opt = numStream.findAny();System.out.println(opt);
ืกื™ื›ื•ื:
ืื•ืคืฆื™ื•ื ืœื™[43] ืื•ืคืฆื™ื•ื ืœื™.ืจื™ืง
ื”ืกื‘ืจ: ื›ืืŸ, ื‘ืžืงืจื” ื”ืจืืฉื•ืŸ, ื”ืžืชื•ื“ื” findFirst() ืžื—ื–ื™ืจื” ืืช ื”ืืœืžื ื˜ ื”ืจืืฉื•ืŸ ืฉืœ ื”ื–ืจื ื›ืื•ืคืฆื™ื•ื ืœื™ . ืœืื—ืจ ืžื›ืŸ, ื›ืืฉืจ ื”ืฉืจืฉื•ืจ ืžื•ืงืฆื” ืžื—ื“ืฉ ื›ืฉืจืฉื•ืจ ืจื™ืง, ื”ืฉื™ื˜ื” findAny() ืžื—ื–ื™ืจื” ืจื™ืง Optional .

allMatch() , anyMatch() ื•- noneMatch()

ื”ืฉื™ื˜ื” allMatch() ืžืฉืžืฉืช ื›ื“ื™ ืœื‘ื“ื•ืง ืื ื›ืœ ื”ืจื›ื™ื‘ื™ื ื‘ื–ืจื ืชื•ืืžื™ื ืœืคืจื“ื™ืงื˜ ืžืกื•ื™ื ื•ืžื—ื–ื™ืจื” ืืช ื”ืขืจืš ื”ื‘ื•ืœื™ืื ื™ true ืื ื›ืŸ, ืื—ืจืช ืžื—ื–ื™ืจื” false . ืื ื”ื–ืจื ืจื™ืง, ื”ื•ื ืžื—ื–ื™ืจ ืืžืช . ื”ืฉื™ื˜ื” anyMatch() ืžืฉืžืฉืช ื›ื“ื™ ืœื‘ื“ื•ืง ืื ืื—ื“ ืžื”ืจื›ื™ื‘ื™ื ื‘ื–ืจื ืชื•ืื ืœืคืจื“ื™ืงื˜ ืžืกื•ื™ื. ื–ื” ืžื—ื–ื™ืจ ืืžืช ืื ื›ืŸ, ืœื ื ื›ื•ืŸ ืื—ืจืช. ืื ื”ื–ืจื ืจื™ืง, ื”ื•ื ืžื—ื–ื™ืจ false . ื”ืฉื™ื˜ื” noneMatch() ืžื—ื–ื™ืจื” true ืื ืืฃ ืืœืžื ื˜ ื‘ื–ืจื ืœื ืชื•ืื ืืช ื”ืคืจื“ื™ืงื˜, ื•- false ืื—ืจืช. ื“ื•ื’ืžื” ืœื”ืžื—ืฉื” ื ืจืื™ืช ื›ืš:
Stream<Integer> numStream = Stream.of(43, 65, 1, 98, 63); boolean flag = numStream.allMatch(n -> n1); System.out.println(flag); numStream = Stream.of(43, 65, 1, 98, 63); flag = numStream.anyMatch(n -> n1); System.out.println(flag); numStream = Stream.of(43, 65, 1, 98, 63); flag = numStream.noneMatch(n -> n==1);System.out.println(flag);
ืกื™ื›ื•ื:
ืฉืงืจ ืืžื™ืชื™ ืฉืงืจ
ื”ืกื‘ืจ: ืขื‘ื•ืจ ื–ืจื numStream ื”ืžื›ื™ืœ 1 ื›ืืœืžื ื˜, ื”ืžืชื•ื“ื” allMatch() ืžื—ื–ื™ืจื” false ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ื”ืืœืžื ื˜ื™ื ืื™ื ื 1, ืืœื ืจืง ืื—ื“ ืžื”ื. ื”ืžืชื•ื“ื” anyMatch() ืžื—ื–ื™ืจื” true ื›ื™ ืœืคื—ื•ืช ืื—ื“ ืžื”ืืœืžื ื˜ื™ื ื”ื•ื 1. ื”ืžืชื•ื“ื” noneMatch() ืžื—ื–ื™ืจื” false ื›ื™ 1 ืงื™ื™ื ืœืžืขืฉื” ื›ืืœืžื ื˜ ื‘ื–ืจื ื–ื”.

ื”ืขืจื›ื•ืช ืขืฆืœื•ืช ื‘-Java Stream

ื”ืขืจื›ื” ืขืฆืœื ื™ืช ืžื•ื‘ื™ืœื” ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ืขื‘ื•ื“ื” ืขื Java Streams ื‘-Java 8. ื”ืŸ ื›ื•ืœืœื•ืช ื‘ืขื™ืงืจ ื“ื—ื™ื™ืช ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืขื“ ืœื”ื™ืชืงืœ ื‘ืคืขื•ืœืช ื˜ืจืžื™ื ืœ. ื”ืขืจื›ื” ืขืฆืœื ื™ืช ืื—ืจืื™ืช ืœืžื ื™ืขืช ื‘ื–ื‘ื•ื– ืžื™ื•ืชืจ ืฉืœ ืžืฉืื‘ื™ื ื‘ื—ื™ืฉื•ื‘ื™ื ืขื“ ืฉืชื”ื™ื” ืฆื•ืจืš ื‘ืชื•ืฆืื” ื‘ืคื•ืขืœ. ื–ืจื ื”ืคืœื˜ ื”ื ื•ื‘ืข ืžืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื ื•ืฆืจ ืจืง ืœืื—ืจ ืกื™ื•ื ืคืขื•ืœืช ื”ื˜ืจืžื™ื ืœ. ื”ืขืจื›ื” ืขืฆืœื ื™ืช ืขื•ื‘ื“ืช ืขื ื›ืœ ืคืขื•ืœื•ืช ื”ื‘ื™ื ื™ื™ื ื‘ื–ืจืžื™ Java. ืฉื™ืžื•ืฉ ืžืื•ื“ ืฉื™ืžื•ืฉื™ ื‘ื”ืขืจื›ื” ืขืฆืœื ื™ืช ืžืชืจื—ืฉ ื›ืืฉืจ ืขื•ื‘ื“ื™ื ืขื ื–ืจืžื™ื ืื™ื ืกื•ืคื™ื™ื. ื›ืš ื ืžื ืขื™ื ื”ืจื‘ื” ืขื™ื‘ื•ื“ื™ื ืžื™ื•ืชืจื™ื.

ืฆื™ื ื•ืจื•ืช ื‘-Java Stream

ืฆื™ื ื•ืจ ื‘-Java Stream ืžื•ืจื›ื‘ ืžื–ืจื ืงืœื˜, ืืคืก ืื• ื™ื•ืชืจ ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืžืกื•ื“ืจื•ืช ื‘ื–ื• ืื—ืจ ื–ื•, ื•ืœื‘ืกื•ืฃ ืคืขื•ืœืช ื˜ืจืžื™ื ืœ. ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื‘-Java Streams ืžื‘ื•ืฆืขื•ืช ื‘ืขืฆืœืชื™ื™ื. ื–ื” ื”ื•ืคืš ืืช ืคืขื•ืœื•ืช ื”ื‘ื™ื ื™ื™ื ื‘ืฆื ืจืช ืœื‘ืœืชื™ ื ืžื ืขื•ืช. ืขื ืฆื™ื ื•ืจื•ืช, ืฉื”ื ื‘ืขืฆื ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืžืฉื•ืœื‘ื•ืช ืœืคื™ ื”ืกื“ืจ, ืžืชืืคืฉืจ ื‘ื™ืฆื•ืข ืขืฆืœ. ืฆื™ื ื•ืจื•ืช ืขื•ื–ืจื™ื ืœืขืงื•ื‘ ืื—ืจ ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ืฉื™ืฉ ืœื‘ืฆืข ืœืื—ืจ ืฉืœื‘ืกื•ืฃ ื ืชืงืœื™ื ื‘ืคืขื•ืœืช ื˜ืจืžื™ื ืœ.

ืกื™ื›ื•ื

ื›ืขืช ื ืกื›ื ืืช ืžื” ืฉืœืžื“ื ื• ื”ื™ื•ื. ื‘ืžืืžืจ ื–ื”:
  1. ื‘ื“ืงื ื• ืžื” ื”ื ื–ืจืžื™ Java.
  2. ืœืื—ืจ ืžื›ืŸ ืœืžื“ื ื• ื˜ื›ื ื™ืงื•ืช ืจื‘ื•ืช ื•ืฉื•ื ื•ืช ืœื™ืฆื™ืจืช ืฉืจืฉื•ืจื™ Java ื‘-Java 8.
  3. ืœืžื“ื ื• ืฉื ื™ ืกื•ื’ื™ื ืขื™ืงืจื™ื™ื ืฉืœ ืคืขื•ืœื•ืช (ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื•ืคืขื•ืœื•ืช ื˜ืจืžื™ื ืœ) ืฉื ื™ืชืŸ ืœื‘ืฆืข ืขืœ ื–ืจืžื™ Java.
  4. ืœืื—ืจ ืžื›ืŸ ื”ืกืชื›ืœื ื• ื‘ืคื™ืจื•ื˜ ืขืœ ื›ืžื” ื“ื•ื’ืžืื•ืช ืฉืœ ืคืขื•ืœื•ืช ื‘ื™ื ื™ื™ื ื•ืคืขื•ืœื•ืช ื˜ืจืžื™ื ืœื™ื•ืช ื›ืื—ื“.
  5. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืœืžื“ื ื• ื™ื•ืชืจ ืขืœ ื”ืขืจื›ื” ืขืฆืœื ื™ืช ื•ืœื‘ืกื•ืฃ ืœืžื“ื ื• ืขืœ ืฆื ืจืช ื‘ืฉืจืฉื•ืจื™ Java.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION