char。]から文字ストリームへのStream.flatMap()

LukeWarm:
import java.util.*; 
import java.util.stream.*; 

class Playground { 

    public static void main(String[] args) 
    { 
        // Creating a character array 
        char arr[] = { '1', '2', '3', '4', '5' }; 

        // --------- Using Stream.of() --------- 
        // Will work efficiently 

        // to convert int array into Stream 
        Stream<char[]> stream = Stream.of(arr); 
        Stream<Integer> s = stream.flatMap((item)->new String(item).chars().mapToObj(a->(char)a));

        // Displaying elements in Stream 
        s.forEach(str -> System.out.print(str + " ")); 
    } 
} 

char []をflatMap()で文字のストリームに変換しようとしていますが、次のエラーが発生しました

./Playground/Playground.java:14: error: incompatible types: inference variable R has incompatible bounds
        Stream<Integer> s = stream.flatMap((item)->new String(item).chars().mapToObj(a->(char)a));
                                          ^
    equality constraints: Integer
    lower bounds: U,Character
  where R,T,U are type-variables:
    R extends Object declared in method <R>flatMap(Function<? super T,? extends Stream<? extends R>>)
    T extends Object declared in interface Stream
    U extends Object declared in method <U>mapToObj(IntFunction<? extends U>)
1 error

エラーとこのタスクを実行する方法を理解するのに助けが必要です。具体的には、char []からCharacterストリームへのflatMap()を使用してこのコード行を修正する方法。

Stream<Integer> s = stream.flatMap((item)->new String(item).chars().mapToObj(a->(char)a))

編集:問題はストリームではなくラムダ式に関するものであることが判明し、私は誤ってラムダ式を修正した後、線をひねって入力を混乱させました。元の行は

Stream<Character> s = stream.flatMap(item->{new String(item).chars().mapToObj(a->(char)a);});

問題は、{}内のreturnステートメントが欠落していたことです。次に、行を

Stream<Integer> s = stream.flatMap((item)->new String(item).chars())

IntStream :: mapToObjが問題を引き起こしていると思ったので、最後にboxed()を忘れて別のタイプエラーが発生したため、IntStream :: mapToObjを追加して質問を投稿しましたが、StreamタイプをCharacterに戻すのを忘れていました。私は混乱しましたが、霧は今晴れています。良い答えをありがとう。

Arvind Kumar Avinash:

Stream<Integer>代わりに使用しましたStream<Character>を使用する場合はStream<Integer>IntStream :: boxedまたはmapToObj(a -> Integer.valueOf(a))以下に示すように使用する必要があります。

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        char arr[] = { '1', '2', '3', '4', '5' };

        Stream<char[]> stream1 = Stream.of(arr);
        Stream<Character> chars = stream1.flatMap(item -> new String(item).chars().mapToObj(a -> (char) a));
        chars.forEach(c -> System.out.print(c + " "));

        System.out.println();

        Stream<char[]> stream2 = Stream.of(arr);
        Stream<Integer> ints = stream2.flatMap(item -> new String(item).chars().boxed());
        ints.forEach(i -> System.out.print(i + " "));

        System.out.println();

        Stream<char[]> stream3 = Stream.of(arr);
        Stream<Integer> integers = stream3.flatMap(item -> new String(item).chars().mapToObj(a -> Integer.valueOf(a)));
        integers.forEach(i -> System.out.print(i + " "));
    }
}

出力:

1 2 3 4 5 
49 50 51 52 53 
49 50 51 52 53 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

flatMapのNetworkOnMainThreadException

分類Dev

ScalaのFlatMap

分類Dev

daskのflatMap

分類Dev

Swift:flatMapから辞書へ

分類Dev

ApacheBeamのParDoとFlatMap?

分類Dev

flatMap後のカフカストリームの具体化

分類Dev

SwiftでのflatMapの定義

分類Dev

rxjsのflatMap、mergeMap、switchMap、concatMap?

分類Dev

flatMap、flatTap、evalMap、evalTapの違い

分類Dev

flatMap、flatTap、evalMap、evalTapの違い

分類Dev

ConnectableObservableとflatMap()の自己参照?

分類Dev

RDD.flatMapの使い方は?

分類Dev

FP-flatMap上の抽象

分類Dev

FlatMapとApacheBeamのマップ

分類Dev

Spring webfluxでのflatMap()とsubscribe()

分類Dev

XSLT、 `flatmap`のような操作

分類Dev

Flatmap()メソッドはストリームの順序を保持しますか?

分類Dev

Javaのイテレータflatmap <ペア<ストリーム<A>、ペア<ストリーム<Aへの流れ<B >>>>、ストリーム<B >>

分類Dev

ストリーム、flatMap、ラムダを使用するJava 8

分類Dev

Stream.flatMap()の再帰的な使用

分類Dev

flatmapを使用したストリームgroupingBy

分類Dev

flatMap / Map変換への理解と混同

分類Dev

flatMap文字列のリストを整数のリストにマップします

分類Dev

Spring 5 Web Reactive - Web Client - Use of flatmap() on the response stream

分類Dev

Scala猫、デカルトのflatMap?

分類Dev

Cactoos flatMapのアナロジー

分類Dev

Javaストリーム:flatMapはオブジェクトのストリームを返します

分類Dev

FlatMap()を使用して、LinkedList <String>のストリームをStringのストリームに変換します

分類Dev

map()。flatMap()よりも単一のflatMap()を使用する方が良いですか?

Related 関連記事

  1. 1

    flatMapのNetworkOnMainThreadException

  2. 2

    ScalaのFlatMap

  3. 3

    daskのflatMap

  4. 4

    Swift:flatMapから辞書へ

  5. 5

    ApacheBeamのParDoとFlatMap?

  6. 6

    flatMap後のカフカストリームの具体化

  7. 7

    SwiftでのflatMapの定義

  8. 8

    rxjsのflatMap、mergeMap、switchMap、concatMap?

  9. 9

    flatMap、flatTap、evalMap、evalTapの違い

  10. 10

    flatMap、flatTap、evalMap、evalTapの違い

  11. 11

    ConnectableObservableとflatMap()の自己参照?

  12. 12

    RDD.flatMapの使い方は?

  13. 13

    FP-flatMap上の抽象

  14. 14

    FlatMapとApacheBeamのマップ

  15. 15

    Spring webfluxでのflatMap()とsubscribe()

  16. 16

    XSLT、 `flatmap`のような操作

  17. 17

    Flatmap()メソッドはストリームの順序を保持しますか?

  18. 18

    Javaのイテレータflatmap <ペア<ストリーム<A>、ペア<ストリーム<Aへの流れ<B >>>>、ストリーム<B >>

  19. 19

    ストリーム、flatMap、ラムダを使用するJava 8

  20. 20

    Stream.flatMap()の再帰的な使用

  21. 21

    flatmapを使用したストリームgroupingBy

  22. 22

    flatMap / Map変換への理解と混同

  23. 23

    flatMap文字列のリストを整数のリストにマップします

  24. 24

    Spring 5 Web Reactive - Web Client - Use of flatmap() on the response stream

  25. 25

    Scala猫、デカルトのflatMap?

  26. 26

    Cactoos flatMapのアナロジー

  27. 27

    Javaストリーム:flatMapはオブジェクトのストリームを返します

  28. 28

    FlatMap()を使用して、LinkedList <String>のストリームをStringのストリームに変換します

  29. 29

    map()。flatMap()よりも単一のflatMap()を使用する方が良いですか?

ホットタグ

アーカイブ