Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJavaストリームコレクタtoCollection()


JavaのCollectorsクラスのtoCollection()メソッドは、入力要素を新しいコレクションに遭遇順に蓄積するコレクターを返します。構文は次のとおりです-

static <T,C extends Collection<T>>
Collector<T,?,C> toCollection(Supplier<C> collectionFactory)

ここで、T-は入力要素のタイプ、Cは結果のコレクションのタイプ、Supplierは結果のサプライヤー、コレクションファクトリは適切なタイプの新しい空のコレクションを返すサプライヤーです

例を見てみましょう-

import java.util.Collection;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
   public static void main(String[] args) {
      Stream<String> stream = Stream.of("25", "10", "15", "20", "25");
      Collection<String> collection = stream.collect(Collectors.toCollection(TreeSet::new));
      System.out.println("Collection = "+collection);
   }
}

出力

Collection = [10, 15, 20, 25]

別の例を見てみましょう-

import java.util.Collection;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
   public static void main(String[] args) {
      Stream<String> stream = Stream.of("Jack", "Tom", "Brad", "Tim", "Kevin", "Bradley", "Ryan");
      Collection<String> collection = stream.collect(Collectors.toCollection(TreeSet::new));
      System.out.println("Collection = "+collection);
   }
}

出力

Collection = [Brad, Bradley, Jack, Kevin, Ryan, Tim, Tom]

  1. IterableをJavaでStreamに変換する

    以下が反復可能であるとしましょう- Iterable<String> i = Arrays.asList("K", "L", "M", "N", "O", "P"); 次に、コレクションを作成します- Stream<String> s = convertIterable(i); 上記には、カスタムメソッド convertIterable()があります。 変換用。以下は方法です- public static <T> Stream<T

  2. JavaでIterableをCollectionに変換する

    以下が反復可能であるとしましょう- Iterable<Integer> i = Arrays.asList(50, 100, 150, 200, 250, 300, 500, 800, 1000); 次に、コレクションを作成します- Collection<Integer> c = convertIterable(i); 上記には、変換用のカスタムメソッドconvertIterable()があります。以下は方法です- public static <T> Collection<T> convertIterable(Iterable<T>