に収集:。)は(ストリームを使用して2つのリストから構成さマップの作成例えば、二つのリストがあるのでJavaの
ストリームを使用してList<Double> list1 = Arrays.asList(1.0, 2.0);
List<String> list2 = Arrays.asList("one_point_zero", "two_point_zero");
、リスト1である場合、私は、これらのリストで構成マップを作成したいですキーの場合はlist2は値の場合です。これを行うには、私は、補助リストを作成する必要があります。ここでは
List<Integer> list0 = Arrays.asList(0, 1);
はマップです:
Map<Double, String> map2 = list0.stream()
.collect(Collectors.toMap(list1::get, list2::get));
リスト0は、注文リスト1で使用されている:: getとlist2の::仕事に取り掛かります。 list0を作成しないと簡単な方法がありますか?私は、次のコードを試してみましたが、それはうまくいきませんでした:
Map<Double, String> map2 = IntStream
.iterate(0, e -> e + 1)
.limit(list1.size())
.collect(Collectors.toMap(list1::get, list2::get));
答えが見つかった:私はStream.iterate使用している必要があります(0、Eは - > E + 1)の代わりにIntStream.iterateの(0、E - > E + 1) – sva605
ので、あなたがすることができます近い質問 –
も参照してくださいhttp://stackoverflow.com/questions/17640754/zipping-streams-using-jdk8-with-lambda -java-util-stream-streams-zip –