質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

10665閲覧

2次元配列の全要素をStreamで出力したい

opyon

総合スコア1009

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/08/07 02:29

###やりたいこと
2次元配列の全要素をStreamで出力したい

---拡張for文での出力例---

java

1 //サンプルデータ 2 List<String> lines = Arrays.asList("a,b,c", "d,e,f", "g,h,i"); 3 String[][] matrix = lines.stream() 4 .map(l -> l.split(",")) 5 .toArray(String[][]::new); 6 7 //拡張for文で出力 8 for(String[] line : matrix) { 9 for(String str : line) { 10 System.out.print(str); 11 } 12 } 13 14 //出力結果 15 //abcdefghi

###やってみたこと
Stream関連のブログなどを読み漁りました
イメージ説明

###今出来ていること
構文エラーやコンパイルエラーが消えただけで、
オブジェクトを参照?しているようなパスのような羅列が出力されてしまっています。

java

1 //steamで出力してみたい 2 IntStream.range(0, matrix.length) 3 .forEach(i -> { 4 String str = IntStream.range(0, matrix[i].length) 5 .toString(); 6 7 System.out.print(str); 8 }); 9

###出力結果
java.util.stream.IntPipeline$Head@4c873330java.util.stream.IntPipeline$Head@119d7047java.util.stream.IntPipeline$Head@776ec8df

### 
###そもそも
拡張for文で出力出来てるしStreamでわざわざ出力する必要があるのか?
疑問を抱きつつも学習のためだと思いあれこれとStreamをキーワードに調べてみましたが、
これだと思う答えに辿り着けず質問させていただいております。
なので回答が拡張for文で良いという声もあると思います。
それらを含めてアドバイスでも良いのでご意見いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

java

1String[][] src = {{"a","b"},{"c","d","ef"}}; 2Arrays.stream(src) 3.flatMap(xs -> Arrays.stream(xs)) 4.forEach(x -> System.out.println(x));

投稿2018/08/07 02:55

編集2018/08/07 02:58
ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

opyon

2018/08/07 03:17

ありがとうございます swordoneさんから11:51に回答頂きましたのでそちらをベストアンサーとさせていただきました
guest

0

ベストアンサー

java

1Arrays.stream(matrix) 2 .flatMap(x -> Arrays.stream(x)) 3 .forEach(System.out::print);

投稿2018/08/07 02:51

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/08/07 03:02

上もArrays::streamでいいのでは?
guest

0

参考情報

  • 多次元配列をループを使わずプリントする方法

https://teratail.com/questions/102877

投稿2018/08/07 15:15

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

opyon

2018/08/08 04:53

ありがとうございます 他にも出力の仕方があることを知ることが出来ました 出力のフォーマット指定があるときには使えませんが デバッグ用に中身を見る時などには簡単で便利そうなので重宝しそうです System.out.println(Arrays.deepToString(matrix)); //出力結果 //[[a, b, c], [d, e, f], [g, h, i]]
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問