Java入門・初心者質問スレ Part.10

レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/04/01(水) 15:09:15.95ID:9COIb57q0
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.9
https://mevius.5ch.net/test/read.cgi/tech/1552143555/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/05/19(水) 22:32:22.28ID:u9Tr9lyP0
我流でも指が楽に動くようならそれに越したことは無い

一般的に推奨されてるどの指でどのキーを打つかってやつは
指にかかる負荷や連続タイプ時の動きが考慮されてないから
参考程度にとどめておいたほうがいい
2021/05/19(水) 23:46:27.23ID:rhqdChZG0
これはもしやdvorakや中指シフトを布教してもいい流れ…?(ウズウズ
2021/05/20(木) 06:38:05.35ID:l+4b2Li70
ダイヤモンドカーソルが捨てられない。
2021/05/20(木) 10:24:43.99ID:8/8IoBOi0
>>868
ちょっと違うけど
ホームポジション右手で入力する文字の場合左手で左シフトとかかな
2021/05/20(木) 11:10:44.82ID:0com/Bnld
>>872
なるほどな
初めて右シフトの存在意義を知ったわ
2021/05/20(木) 12:04:28.12ID:8/8IoBOi0
Ctrl「」
Alt「」
875デフォルトの名無しさん (オッペケ Sr99-sYBi)
垢版 |
2021/05/20(木) 19:02:26.06ID:30h9gtLkr
JavaのGOLD持ってれば実務で組んでなくても何かしらの評価になりますかね?
他言語経験者でJavaの勉強しようと思うんだけど、ゴールをどういうところにもっていこうかと思ってる。
2021/05/20(木) 20:27:10.80ID:MNzWSTCi0
「JavaのGOLDを持っているんだな」
という評価になる
もしJavaのプログラミングを仕事にしたいのであれば
そういう求人のところに応募するしかない
雇う側はゼロから教えるつもりだから
知識があるかどうかは関係がない
ちょっと有利かもしれない
2021/05/20(木) 21:17:11.84ID:7GLv43lA0
Ruby on Rails なんて、1年の未経験者が10年以上のプロよりも、技術力が上!

WSL2, Linux, Node.js(Webpack, Babel), Docker Compose, CircleCI,
VSCode(Remote Container, Remote WSL)、データベース

さらに最近は、AWS Fargate, Terraform, React, Vue.js

一方、YouTube で有名な雑食系エンジニア・KENTA は、
SES系Java は何もしなくても良いって言ってるw
SIer が、IT土方奴隷を集めているだけだから

YouTube では、自社開発系RubyのKENTA vs SES系Javaのモローの戦い
2021/05/20(木) 21:38:42.92ID:cxFAF0HU0
黄金の知識をちゃんとコードに反映できるレベルなら
そこらへんの低能が書いたコードより遥かに綺麗になることは間違いない
ただ知識詰め込んで黄金取りましたっていうなら低能と一緒
2021/05/21(金) 07:43:57.35ID:xiC/0WHtd
20代までなら実務経験なくても多少評価高く見てもらえるんじゃない?
他言語の経験はあるみたいだしそこでの活躍次第でいくらでも上振れる
30代以上なら資格なくてもJavaの実務経験豊富な奴採るかな
880デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/21(金) 11:11:47.91ID:zMzSk3zP0
Javaの仕事したいわけじゃないんじゃないかな・・・だってJavaだよ
2021/05/21(金) 12:05:09.44ID:xiC/0WHtd
Javaの仕事したくないのにgold取る意味が分からん
評価欲しいならその業務に適した資格があるだろ
2021/05/21(金) 12:28:59.03ID:0Sgqy91j0
IBM HLアセンブラーの資格試験がありません。よくこれだけで30年食えたわ
883デフォルトの名無しさん (ワッチョイ c7fd-FS33)
垢版 |
2021/05/21(金) 13:53:03.23ID:E7VjYYrK0
GOLDとっても若くないと取得しても意味がないかな
受験料安ければ自己研鑽でとってもいいんだけどなぁ
保有してる方はどういう理由で取得されたんですか?
884デフォルトの名無しさん (ワッチョイ 5a81-2aW8)
垢版 |
2021/05/21(金) 14:34:00.41ID:J6y23PLS0
Javaでおすすめのparser libraryってありますか?
885デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/21(金) 14:48:02.65ID:zMzSk3zP0
>>884
何をパースするん? CSV? JSON? XML?
886デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
垢版 |
2021/05/21(金) 15:06:39.75ID:DJROoS0Z0
初心者だがファイル読み込みとは言わずパーサを欲しがる……
とするとSableCCみたいなパーサジェネレータが欲しいんだろ
2021/05/21(金) 17:52:45.42ID:UJ1kX+6I0
住所のパーサー
888デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/21(金) 20:18:52.67ID:zMzSk3zP0
総務省の全国地方公共団体コードを参照して
都道府県、市区町村、その他住所に分割したことならある

総務省|電子自治体|全国地方公共団体コード
https://www.soumu.go.jp/denshijiti/code.html
889デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
垢版 |
2021/05/22(土) 10:32:23.88ID:zUe7A7la0
最後が32ページとかなってるがこいつらマジで印刷するつもりなのか、バカだろ
総務省はアホとバカのすくつか?
最高学府でエクセル印刷するバカを量産してんのか?
890デフォルトの名無しさん (ワッチョイ 5a81-CDvz)
垢版 |
2021/05/22(土) 14:16:48.59ID:tNDHMa2e0
>>886
そうです
パーサージェネレータです
2021/05/22(土) 16:14:37.91ID:UkwPJEM/0
HttpUrlConnectionを使ってサーバに対してPOST送信してるのですが、
送信データはBASE64文字列のため、「+」が含まれているとスペースに置き換わってしまいます。
これはJavaの仕様なのでしょうか?
何か回避策ありますかね?

// POSTデータ送信処理
try (OutputStream out = con.getOutputStream()) {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
writer.write("signature=" + signature);
writer.flush();
writer.close();
2021/05/22(土) 17:43:07.78ID:BpGuuP7G0
URLEncodeしたら良いのでは?
2021/05/22(土) 19:16:21.75ID:OTmzqgg10
>>889
ただの大学出ってだけでなくて、東京一工早慶とかゴロゴロいそうなイメージ
2021/05/22(土) 19:20:56.87ID:slWco1FS0
>>889
役所は紙に印刷して人の目で確認するって法律で決まってるって聞いた。
いまどきアホなことやってんなとは思うがw
895デフォルトの名無しさん (ワッチョイ bb5f-crVl)
垢版 |
2021/05/22(土) 19:36:52.96ID:ltwxHPV/0
(Kyokumen)oの処理は何をしているのでしょうか
基本かと思うのですが

class Kyokumen implements Constants,Cloneable {
//中略
public boolean equals(Object o) {

Kyokumen k=(Kyokumen)o;
if (k==null) return false;
return equals(k);
}
//中略
}
2021/05/22(土) 19:49:20.98ID:wyVRn0/c0
>>895
ObjectからKyokumenに型変換してる
てかなにこのひどいメソッド
2021/05/22(土) 19:51:28.10ID:ltwxHPV/0
Java将棋のアルゴリズムという本からの抜粋です
ありがとうございました。
2021/05/23(日) 01:42:48.15ID:b3Yb3C630
邪悪なコードに見えるけど、きっと抜粋元では型チェックしてるし、オーバーロードもprivateなんでしょう
2021/05/23(日) 13:09:09.14ID:zmSGPUw10
インスタンス同士の等価でしょ。
丸投げ判定

Ruby で言う、<=> 宇宙船演算子
900デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
垢版 |
2021/05/23(日) 13:40:34.46ID:P4UGjjTl0
1 equalsはObjectで受け取るのがお約束
2 次のステップでは適切な型かどうかチェックするのもセオリー
3 その後にようやくホントの比較をする

これをすっ飛ばすとセオリーだけがヘンにこびりついた謎コードが出来上がる
曰く「equalsではObjectで受けとれ」てな村の伝承で型チェックせず無条件にキャストしてる

でも局面と局面以外を比較するミスなんてそうそう起きないでしょコレ
昔からの惰性でキャストしてる
901デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
垢版 |
2021/05/23(日) 13:44:08.84ID:P4UGjjTl0
・キャスト知らない
・equalsの典型的な書き方知らない

将棋の本読んでる場合じゃねーぞ
Javaの教科書一通り読んだ方が早いゾ

基本と分かってて基本をやって無いんだからこの先幾度となくつっかかって読み通せなくなるのが目に見えてる
2021/05/23(日) 14:33:42.74ID:zmSGPUw10
たいてい、どの言語でも「Effective 何々」と言う本に書いてある

インスタンス同士の比較を定義しましょうとか、
インスタンス.to_string を定義しましょうとか
903デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
垢版 |
2021/05/23(日) 14:39:32.91ID:P4UGjjTl0
>>902
違うじゃん
キャストが何なのか知らない、分からない、と書いてる
2021/05/23(日) 15:42:25.84ID:2txaDFya0
なんでobjectで受け取ってるか理解してないガチ素人しかいなくてワロタw
回答側も初心者しかいなくてワロタw
2021/05/23(日) 16:04:36.11ID:zmSGPUw10
Object は基底クラスだから、

つまり、すべてのクラスを受け付けるように作っている
2021/05/23(日) 16:13:39.47ID:b3Yb3C630
>>899
RubyおじさんJava分かってないじゃん
インスタンス等価を評価したいならそもそもオーバーライドする必要がない
super.equals(k) と書いていない以上、Objectクラスのインスタンス等価の実装が呼ばれることはない
再起でスタックオーバーフローになってないならオーバーロードが省略されてると考えるのが妥当

ついでに言うと、equalsをオーバーロードするのは悪手もいいところ
ただしequalsのオーバーロードをprivateで書いた場合は直ちに実害はない(やりたいとは決して思わんけど)
2021/05/23(日) 16:15:22.80ID:2txaDFya0
そういう意味じゃねーんだなぁ
908デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 16:19:28.38ID:WOQp3bQ90
>>906
> equalsをオーバーロードするのは悪手もいいところ

これはどうしてなの?
2021/05/23(日) 16:32:49.81ID:2txaDFya0
ルビーのおっさんは論外だからもうレスしないほうがいいぞ
2021/05/23(日) 17:03:37.00ID:b3Yb3C630
>>908
書くだけ無駄な上にミスを誘発する
特にオーバーロードだけ書いてオーバーライドを忘れるとMapなどでまともに動かなくなる
サブクラスを増やしたときもオーバーロード向けのオーバーライドがいちいち必要になって冗長だしこれまたミスを誘う
オーバーロード間で挙動に一貫性がなかったりするとこれまた分かりにくいバグを生む
2021/05/23(日) 18:20:34.20ID:9APxQxbl0
>>908
オーバーライドではなくオーバーロードだよ? 悪手に決まってんじゃん
元のコードを読み返してみて equals の中から equals が呼ばれてる
これがスタックオーバーフローしないのは equals(Kyokumen k) というオーバーロードが存在するからと推測できる

このようなオーバーロードをしてるとちょっとしたことでスタックオーバーフローしがち
だからやめようね
912デフォルトの名無しさん (ワッチョイ 1a61-lZiV)
垢版 |
2021/05/23(日) 18:56:42.05ID:KO9AQv5q0
内側の隠蔽用途なら、適当に_つけるとかなんかすればいいしな。
913デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:05:03.23ID:WOQp3bQ90
>>910
そうなんだ
914デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:05:53.77ID:WOQp3bQ90
>>911
キャストしてるからオーバーロードが成立するわけで再帰するわけじゃないっすよね
スタックオーバーフローにはならないですよね
915デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:07:30.09ID:WOQp3bQ90
間違って書いたとしてもスタックオーバーフローになるなら実装時に気づくと思うけどなあ
なんでダメなのかあまり説得力を感じなかった
916デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:08:22.16ID:WOQp3bQ90
オーバーライド忘れてMapが動かなくなるのはオーバーライドがあろうがなかろうがそんなの当たり前じゃん
君たちの批判はすべて言いがかりレベルの些末なことだよ
917デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:09:45.22ID:WOQp3bQ90
僕はそんなミスをしたことがないんだよね、僕が優秀なだけなのかな
なんか優秀でごめんだけど、本当に意味がわからないんだよね
2021/05/23(日) 19:18:10.69ID:2txaDFya0
”君たち”じゃないから
くそみたいな低レベルな話してるのはおまえともう一人の奴だけだ
関係ないやつを巻き込むな
919デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:19:24.44ID:WOQp3bQ90
>>918
君も含めて、意味がわからないんだよね
君がその代表です
920デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:20:23.07ID:WOQp3bQ90
>>918
> equalsをオーバーロードするのは悪手もいいところ

これはどうしてなの?
2021/05/23(日) 19:26:05.46ID:2txaDFya0
別にワイは握手なんて言ってない
噛みつくな阿呆
922デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:30:45.97ID:WOQp3bQ90
>>921
そうなんです
あなたは何も言ってないんです、だから意味がわからないんです
equalsをオーバーロードするのはあなたにとってどう?
923デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:31:01.71ID:WOQp3bQ90
率直に
924デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:35:54.83ID:WOQp3bQ90
> public boolean equals(Object o) {
> Kyokumen k=(Kyokumen)o;
> if (k==null) return false;
> return equals(k);
> }

このメソッドはKyokumenでないオブジェクトが渡されたときに
実行時例外が投げられるけれども、実行時例外が投げられるからこそ
実装ミスに気づける良いコードとも言えるわけです
925デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:39:00.17ID:WOQp3bQ90
Javaの標準ライブラリはジェネリクス使ってコンパイル時に型の間違いを検出できるようにするのが
理想なんでしょうけどね
2021/05/23(日) 19:50:40.79ID:2txaDFya0
頭悪そうだからわかってて言ってるのか知らんが
オバマロードの糞な点はメソッドの選択が動的ではないということだろ
2021/05/23(日) 19:52:33.86ID:9APxQxbl0
>>914
そりゃあちゃんと書いてれば再帰にはならないけどさ
equals(Kyokumen k) の型を間違えたり変更したりしただけで equals(Object o) がマッチしてしまう危険性がある
たとえば equals(KyokumenB k) にしてしまったりとか
928デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:58:09.23ID:WOQp3bQ90
>>926
> オバマロードの糞な点はメソッドの選択が動的ではないということだろ

それはオーバーロードの説明であってクソなところの説明ではないよね
いまだにあなたは何も言ってない状況です、給料泥棒だよ
929デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 19:59:35.86ID:WOQp3bQ90
>>927
型を間違えるっていうのはそれはもうバグなので
スタックオーバーフローでそれに気づけるので良いことですよね
2021/05/23(日) 20:03:19.38ID:2txaDFya0
>それはオーバーロードの説明であってクソなところの説明ではないよね

動的でないメソッドの選択が実装者にとってとてつもなく糞で言語の欠陥って言ってるのが
わからないくらいアホなんだからレスつけるな低能
931デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 20:04:24.08ID:WOQp3bQ90
>>930
どうしてクソなのか説明できる?
2021/05/23(日) 20:05:58.14ID:2txaDFya0
説明できなきゃ動的でないってレスもできないよなぁアホ
「私は低能だからわからないので教えてください」って言ったら説明してやるよ低能
933デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 20:07:50.86ID:WOQp3bQ90
>>932
私は低能だからわからないので教えてください
934デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 20:08:15.84ID:WOQp3bQ90
言っとくけど僕にはプライドなんてないからね!!
2021/05/23(日) 20:20:11.34ID:2txaDFya0
ほんとド低能は低能すぎてしょうがないにゃぁ
オバマロードしたメソッドはコンパイルされた段階でどのメソッドが呼び出されるか既に確定してるんだよ
今回のように同じ型を引数に渡せるメソッドが2つあった場合Objectの方のメソッドしか絶対に呼ばれない
これが糞な理由だ
これでわからなかった諦めて入門書からやりなおせ低能
2021/05/23(日) 20:22:39.10ID:2txaDFya0
今回のようにとは言ったがオーバーロードしたメソッドがあるかは全くわからんけどな
そんなもん作っても呼ばれないんだから無意味だしないと考えるのが妥当
937デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 20:28:33.19ID:WOQp3bQ90
>>935
え、全然わかんないんだけど、何言ってるのこの人、ちゃんと説明してる?

> 今回のように同じ型を引数に渡せるメソッドが2つあった場合Objectの方のメソッドしか絶対に呼ばれない

実引数の型によるよね
2021/05/23(日) 20:29:59.37ID:2txaDFya0
よらねーんだアホ
だから低能なんだよお前は
あほ
2021/05/23(日) 20:31:43.15ID:2txaDFya0
疑問に思う前に手を動かせ糞初心者
ピーチクパーチク喚きやがって
あほ
940デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 20:38:40.39ID:WOQp3bQ90
>>939
手を動かしてみたけど、引数の型によるよね
https://paiza.io/projects/6YXcZ8p6aqjXKYR2MKMlew
2021/05/23(日) 20:39:30.35ID:2txaDFya0
じゃあコンパイラが進化したんだろ
よかったな
942デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/23(日) 20:40:56.61ID:WOQp3bQ90
>>941
昔はそうだったってこと? いつのとき? Javaのバージョンは? あなたは手を動かして確認したのだよね?
バージョンいくつで確認したの?
2021/05/23(日) 21:42:48.93ID:M92o8L4fM
さすがFラン
教える側のスキルも高いww
2021/05/23(日) 23:20:27.21ID:to7c/Wgud
初心者なんですけど ワッチョイ 4e10-lMMI の涙目敗走負けってことでいいんですか??
2021/05/23(日) 23:24:15.67ID:2txaDFya0

オバマロードが静的であることは事実だから
おまえの負け
2021/05/23(日) 23:32:32.83ID:zMFANV160
SpringBootでコンソールアプリケーションを作成したいんだけど
コマンドライン引数解析でいい感じのライブラリってある?
.NETでは↓こういうのがあってこれの類似品がJavaにあれば助かる
https://github.com/Cysharp/ConsoleAppFramework
2021/05/23(日) 23:42:14.02ID:b3Yb3C630
ApplicationRunner標準のApplicationArgumentsしか使ってないや
2021/05/23(日) 23:48:00.16ID:8+E/rOe30
>>944
バグりやすいからequalsのオーバーロードは避けたほうがいいのは間違いない

それ以外にも元のサンプルコードはいきなりキャストして
それからnullチェックとか意味がわからん
949デフォルトの名無しさん (ワッチョイ 7601-L4y7)
垢版 |
2021/05/24(月) 00:37:58.81ID:VswUGgIR0
>>948
nullのときfalseにしたいだけだと思うよ
2021/05/24(月) 01:14:48.10ID:E9VQgXzh0
>>949
nullのときにfalseにするならキャスト前に o == null で十分
instanceof 使わずに強制キャスト試みるなら k も要らんな
equals((Kyokumen)o) でいいな
どうせテキトーなコードなんだから
2021/05/24(月) 01:34:10.56ID:ffjxbchL0
>>950
だよね

ググったら近畿大学理工学部で卒業研究が2つヒットした
該当箇所は2つともコメント含め全く同じだったから元ネタは別にありそう
2021/05/24(月) 02:27:54.53ID:VswUGgIR0
>>950
それはキャストしたあとにヌルチェックするのが不十分ということにはならんよね
2021/05/24(月) 02:29:52.62ID:VswUGgIR0
if分は三項演算子で十分と言ってるようなもので結局書き手の好みでしかないよ
2021/05/24(月) 02:32:12.56ID:VswUGgIR0
コストの差なんて誤差みたいなものだしキャストの前と後どちらでヌルチェックするかにこだわるのは時間の無駄だよ、それよりも将棋のアルゴリズムを考えたが良い
955デフォルトの名無しさん (ワッチョイ 3761-lZiV)
垢版 |
2021/05/24(月) 09:16:45.11ID:Mu3SKiXg0
たったこれだけのイディオムで書く書かない考えるまでもないだろ。
if (o == null || getClass() != o.getClass()) return false;
GoogleのAutoなんとかやIDEが勝手に追加してくれる。
2021/05/25(火) 03:40:08.61ID:aPZR3p760
>>955
一般的に同じクラスじゃないとequals() を真にしないほうがいいのでしょうか。
いままであまり考えずに insuranceOf() で子クラスも ok にしてました。
2021/05/25(火) 08:14:57.06ID:NjlFkzs4d
method(Object o)
というメソッドを呼び出す時、String型だろうがInteger型だろうが引数に渡すことができますが

method(List<Object> oList)
というメソッドに対してList<String>やList<Integer>を引数に渡す事ができないのはなぜでしょうか?
958デフォルトの名無しさん (ワッチョイ 6301-7S+s)
垢版 |
2021/05/25(火) 08:42:01.42ID:9mK+q0F80
>>957
仕様で禁止
仮にmethod(List<Object> oList)の中でoList.add("test")ってやってたら、List<Integer>を渡されたら困るでしょ

これができないのと同じこと
List<Object> objList;
List<Integer> intList = new ArrayList<>();
objList = intList; // コンパイルエラー
objList.add("数字じゃない");
959デフォルトの名無しさん (ワッチョイ 3761-lZiV)
垢版 |
2021/05/25(火) 09:30:33.81ID:LcgTzRfK0
>>956
実用上、どっちでもいいんじゃね。
その子クラスでもequals()を結局実装することになるだろうし、
そもそもデータクラスで継承使いたくないのもあるし。
2021/05/30(日) 17:47:48.28ID:y07gAalSM
JPAのhibernate.ddl-auto=updateって使ってる?
961デフォルトの名無しさん (ワッチョイ 3e01-O+lH)
垢版 |
2021/06/04(金) 19:22:32.43ID:m+7qhb/N0
質問です
var stream = IntStream.range(0, 10).boxed();
このStreamから要素数を指定してグルーピングして
[0,1,2],[3,4,5],[7,8,9]
というStreamを得たいのですがどのようにデータを操作すれば良いですか?
Streamではこういうことできなかったりしますか?
2021/06/04(金) 22:35:57.03ID:1mLYK0aA0
なぜ6が抜けてるのか...ミスだと仮定すると
Collection<List<Integer>> values = IntStream.range(0,10).boxed()
.collect(Collectors.groupingBy(i -> i / 3))
.values();
System.out.println(values);

実行結果
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
963デフォルトの名無しさん (ワッチョイ 3e01-O+lH)
垢版 |
2021/06/04(金) 23:26:44.04ID:m+7qhb/N0
>>962
ありがとうございます!
6はミスなので気にしないで大丈夫です
collectはStreamが終わってしまうんですよね
[0,1,2]...をStreamで逐次に読み出したいんですせっかくのStreamなので
グルーピングの処理を逐次でできるといんですけど
964デフォルトの名無しさん (ワッチョイ 3e01-O+lH)
垢版 |
2021/06/04(金) 23:44:45.71ID:m+7qhb/N0
無理なんですかね、.NETのLINQのGroupByもシーケンス全部を読み取るようですし
条件を指定した場合は要素を全部見ないといけないんでしょうけど
先頭から数件ごとにグルーピングする場合は理屈としてはシーケンシャルに
読み取れるはずなのでStreamでやれればと思ったんですけど、難しいですねこれ
いったん諦めます、もしわかったかたおられたら教えて欲しいです
私はRxJavaを試してみます
2021/06/05(土) 02:14:20.34ID:vquxfJwH0
Iterator使ってみた
https://ideone.com/X97Qfj
2021/06/05(土) 02:32:28.30ID:3xxGtz3m0
>>964 すまんグルーピングじゃなくてただのwindowか...
RxJavaなら
Observable.range(0, 9).window(3).subscribe(....)
Streamだと今思いつかない。
967デフォルトの名無しさん (ワッチョイ 3e01-O+lH)
垢版 |
2021/06/05(土) 03:00:46.09ID:MxOWvxhv0
>>965
すごいです!

>>966
ありがとうございます!
968デフォルトの名無しさん (ワッチョイ caad-p9zx)
垢版 |
2021/06/05(土) 18:40:06.43ID:lg0pCfQ90
Kotlin もよろしく


Kotlinだとこうなる

val values = (1..10).chunked(3)
println(values)

出力
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況