次スレを立てる時は本文の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
Java入門・初心者質問スレ Part.10
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 0fba-HyQo)
2020/04/01(水) 15:09:15.95ID:9COIb57q0896デフォルトの名無しさん (ワッチョイ 275f-Hm19)
2021/05/22(土) 19:49:20.98ID:wyVRn0/c0897デフォルトの名無しさん (ワッチョイ bb5f-crVl)
2021/05/22(土) 19:51:28.10ID:ltwxHPV/0 Java将棋のアルゴリズムという本からの抜粋です
ありがとうございました。
ありがとうございました。
898デフォルトの名無しさん (ワッチョイ 5a9f-miPe)
2021/05/23(日) 01:42:48.15ID:b3Yb3C630 邪悪なコードに見えるけど、きっと抜粋元では型チェックしてるし、オーバーロードもprivateなんでしょう
899デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
2021/05/23(日) 13:09:09.14ID:zmSGPUw10 インスタンス同士の等価でしょ。
丸投げ判定
Ruby で言う、<=> 宇宙船演算子
丸投げ判定
Ruby で言う、<=> 宇宙船演算子
900デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2021/05/23(日) 13:40:34.46ID:P4UGjjTl0 1 equalsはObjectで受け取るのがお約束
2 次のステップでは適切な型かどうかチェックするのもセオリー
3 その後にようやくホントの比較をする
これをすっ飛ばすとセオリーだけがヘンにこびりついた謎コードが出来上がる
曰く「equalsではObjectで受けとれ」てな村の伝承で型チェックせず無条件にキャストしてる
でも局面と局面以外を比較するミスなんてそうそう起きないでしょコレ
昔からの惰性でキャストしてる
2 次のステップでは適切な型かどうかチェックするのもセオリー
3 その後にようやくホントの比較をする
これをすっ飛ばすとセオリーだけがヘンにこびりついた謎コードが出来上がる
曰く「equalsではObjectで受けとれ」てな村の伝承で型チェックせず無条件にキャストしてる
でも局面と局面以外を比較するミスなんてそうそう起きないでしょコレ
昔からの惰性でキャストしてる
901デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2021/05/23(日) 13:44:08.84ID:P4UGjjTl0 ・キャスト知らない
・equalsの典型的な書き方知らない
将棋の本読んでる場合じゃねーぞ
Javaの教科書一通り読んだ方が早いゾ
基本と分かってて基本をやって無いんだからこの先幾度となくつっかかって読み通せなくなるのが目に見えてる
・equalsの典型的な書き方知らない
将棋の本読んでる場合じゃねーぞ
Javaの教科書一通り読んだ方が早いゾ
基本と分かってて基本をやって無いんだからこの先幾度となくつっかかって読み通せなくなるのが目に見えてる
902デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
2021/05/23(日) 14:33:42.74ID:zmSGPUw10 たいてい、どの言語でも「Effective 何々」と言う本に書いてある
インスタンス同士の比較を定義しましょうとか、
インスタンス.to_string を定義しましょうとか
インスタンス同士の比較を定義しましょうとか、
インスタンス.to_string を定義しましょうとか
903デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2021/05/23(日) 14:39:32.91ID:P4UGjjTl0904デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 15:42:25.84ID:2txaDFya0 なんでobjectで受け取ってるか理解してないガチ素人しかいなくてワロタw
回答側も初心者しかいなくてワロタw
回答側も初心者しかいなくてワロタw
905デフォルトの名無しさん (ワッチョイ 5b2c-5BAZ)
2021/05/23(日) 16:04:36.11ID:zmSGPUw10 Object は基底クラスだから、
つまり、すべてのクラスを受け付けるように作っている
つまり、すべてのクラスを受け付けるように作っている
906デフォルトの名無しさん (ワッチョイ 5a9f-miPe)
2021/05/23(日) 16:13:39.47ID:b3Yb3C630 >>899
RubyおじさんJava分かってないじゃん
インスタンス等価を評価したいならそもそもオーバーライドする必要がない
super.equals(k) と書いていない以上、Objectクラスのインスタンス等価の実装が呼ばれることはない
再起でスタックオーバーフローになってないならオーバーロードが省略されてると考えるのが妥当
ついでに言うと、equalsをオーバーロードするのは悪手もいいところ
ただしequalsのオーバーロードをprivateで書いた場合は直ちに実害はない(やりたいとは決して思わんけど)
RubyおじさんJava分かってないじゃん
インスタンス等価を評価したいならそもそもオーバーライドする必要がない
super.equals(k) と書いていない以上、Objectクラスのインスタンス等価の実装が呼ばれることはない
再起でスタックオーバーフローになってないならオーバーロードが省略されてると考えるのが妥当
ついでに言うと、equalsをオーバーロードするのは悪手もいいところ
ただしequalsのオーバーロードをprivateで書いた場合は直ちに実害はない(やりたいとは決して思わんけど)
907デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 16:15:22.80ID:2txaDFya0 そういう意味じゃねーんだなぁ
908デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 16:19:28.38ID:WOQp3bQ90909デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 16:32:49.81ID:2txaDFya0 ルビーのおっさんは論外だからもうレスしないほうがいいぞ
910デフォルトの名無しさん (ワッチョイ 5a9f-miPe)
2021/05/23(日) 17:03:37.00ID:b3Yb3C630 >>908
書くだけ無駄な上にミスを誘発する
特にオーバーロードだけ書いてオーバーライドを忘れるとMapなどでまともに動かなくなる
サブクラスを増やしたときもオーバーロード向けのオーバーライドがいちいち必要になって冗長だしこれまたミスを誘う
オーバーロード間で挙動に一貫性がなかったりするとこれまた分かりにくいバグを生む
書くだけ無駄な上にミスを誘発する
特にオーバーロードだけ書いてオーバーライドを忘れるとMapなどでまともに動かなくなる
サブクラスを増やしたときもオーバーロード向けのオーバーライドがいちいち必要になって冗長だしこれまたミスを誘う
オーバーロード間で挙動に一貫性がなかったりするとこれまた分かりにくいバグを生む
911デフォルトの名無しさん (ワッチョイ 979c-5O72)
2021/05/23(日) 18:20:34.20ID:9APxQxbl0 >>908
オーバーライドではなくオーバーロードだよ? 悪手に決まってんじゃん
元のコードを読み返してみて equals の中から equals が呼ばれてる
これがスタックオーバーフローしないのは equals(Kyokumen k) というオーバーロードが存在するからと推測できる
このようなオーバーロードをしてるとちょっとしたことでスタックオーバーフローしがち
だからやめようね
オーバーライドではなくオーバーロードだよ? 悪手に決まってんじゃん
元のコードを読み返してみて 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:WOQp3bQ90915デフォルトの名無しさん (ワッチョイ 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 僕はそんなミスをしたことがないんだよね、僕が優秀なだけなのかな
なんか優秀でごめんだけど、本当に意味がわからないんだよね
なんか優秀でごめんだけど、本当に意味がわからないんだよね
918デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 19:18:10.69ID:2txaDFya0 ”君たち”じゃないから
くそみたいな低レベルな話してるのはおまえともう一人の奴だけだ
関係ないやつを巻き込むな
くそみたいな低レベルな話してるのはおまえともう一人の奴だけだ
関係ないやつを巻き込むな
919デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 19:19:24.44ID:WOQp3bQ90920デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 19:20:23.07ID:WOQp3bQ90921デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 19:26:05.46ID:2txaDFya0 別にワイは握手なんて言ってない
噛みつくな阿呆
噛みつくな阿呆
922デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 19:30:45.97ID:WOQp3bQ90923デフォルトの名無しさん (ワッチョイ 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でないオブジェクトが渡されたときに
実行時例外が投げられるけれども、実行時例外が投げられるからこそ
実装ミスに気づける良いコードとも言えるわけです
> 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の標準ライブラリはジェネリクス使ってコンパイル時に型の間違いを検出できるようにするのが
理想なんでしょうけどね
理想なんでしょうけどね
926デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 19:50:40.79ID:2txaDFya0 頭悪そうだからわかってて言ってるのか知らんが
オバマロードの糞な点はメソッドの選択が動的ではないということだろ
オバマロードの糞な点はメソッドの選択が動的ではないということだろ
927デフォルトの名無しさん (ワッチョイ 979c-5O72)
2021/05/23(日) 19:52:33.86ID:9APxQxbl0 >>914
そりゃあちゃんと書いてれば再帰にはならないけどさ
equals(Kyokumen k) の型を間違えたり変更したりしただけで equals(Object o) がマッチしてしまう危険性がある
たとえば equals(KyokumenB k) にしてしまったりとか
そりゃあちゃんと書いてれば再帰にはならないけどさ
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:WOQp3bQ90930デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 20:03:19.38ID:2txaDFya0 >それはオーバーロードの説明であってクソなところの説明ではないよね
動的でないメソッドの選択が実装者にとってとてつもなく糞で言語の欠陥って言ってるのが
わからないくらいアホなんだからレスつけるな低能
動的でないメソッドの選択が実装者にとってとてつもなく糞で言語の欠陥って言ってるのが
わからないくらいアホなんだからレスつけるな低能
931デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 20:04:24.08ID:WOQp3bQ90 >>930
どうしてクソなのか説明できる?
どうしてクソなのか説明できる?
932デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
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 言っとくけど僕にはプライドなんてないからね!!
935デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 20:20:11.34ID:2txaDFya0 ほんとド低能は低能すぎてしょうがないにゃぁ
オバマロードしたメソッドはコンパイルされた段階でどのメソッドが呼び出されるか既に確定してるんだよ
今回のように同じ型を引数に渡せるメソッドが2つあった場合Objectの方のメソッドしか絶対に呼ばれない
これが糞な理由だ
これでわからなかった諦めて入門書からやりなおせ低能
オバマロードしたメソッドはコンパイルされた段階でどのメソッドが呼び出されるか既に確定してるんだよ
今回のように同じ型を引数に渡せるメソッドが2つあった場合Objectの方のメソッドしか絶対に呼ばれない
これが糞な理由だ
これでわからなかった諦めて入門書からやりなおせ低能
936デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 20:22:39.10ID:2txaDFya0 今回のようにとは言ったがオーバーロードしたメソッドがあるかは全くわからんけどな
そんなもん作っても呼ばれないんだから無意味だしないと考えるのが妥当
そんなもん作っても呼ばれないんだから無意味だしないと考えるのが妥当
937デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 20:28:33.19ID:WOQp3bQ90 >>935
え、全然わかんないんだけど、何言ってるのこの人、ちゃんと説明してる?
> 今回のように同じ型を引数に渡せるメソッドが2つあった場合Objectの方のメソッドしか絶対に呼ばれない
実引数の型によるよね
え、全然わかんないんだけど、何言ってるのこの人、ちゃんと説明してる?
> 今回のように同じ型を引数に渡せるメソッドが2つあった場合Objectの方のメソッドしか絶対に呼ばれない
実引数の型によるよね
938デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 20:29:59.37ID:2txaDFya0 よらねーんだアホ
だから低能なんだよお前は
あほ
だから低能なんだよお前は
あほ
939デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 20:31:43.15ID:2txaDFya0 疑問に思う前に手を動かせ糞初心者
ピーチクパーチク喚きやがって
あほ
ピーチクパーチク喚きやがって
あほ
940デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 20:38:40.39ID:WOQp3bQ90941デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 20:39:30.35ID:2txaDFya0 じゃあコンパイラが進化したんだろ
よかったな
よかったな
942デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/23(日) 20:40:56.61ID:WOQp3bQ90943デフォルトの名無しさん (ブーイモ MMe7-jNIj)
2021/05/23(日) 21:42:48.93ID:M92o8L4fM さすがFラン
教える側のスキルも高いww
教える側のスキルも高いww
944デフォルトの名無しさん (スッップ Sdba-gwqZ)
2021/05/23(日) 23:20:27.21ID:to7c/Wgud 初心者なんですけど ワッチョイ 4e10-lMMI の涙目敗走負けってことでいいんですか??
945デフォルトの名無しさん (ワッチョイ 4e10-lMMI)
2021/05/23(日) 23:24:15.67ID:2txaDFya0 逆
オバマロードが静的であることは事実だから
おまえの負け
オバマロードが静的であることは事実だから
おまえの負け
946デフォルトの名無しさん (ワッチョイ 3e02-cTKX)
2021/05/23(日) 23:32:32.83ID:zMFANV160 SpringBootでコンソールアプリケーションを作成したいんだけど
コマンドライン引数解析でいい感じのライブラリってある?
.NETでは↓こういうのがあってこれの類似品がJavaにあれば助かる
https://github.com/Cysharp/ConsoleAppFramework
コマンドライン引数解析でいい感じのライブラリってある?
.NETでは↓こういうのがあってこれの類似品がJavaにあれば助かる
https://github.com/Cysharp/ConsoleAppFramework
947デフォルトの名無しさん (ワッチョイ 5a9f-miPe)
2021/05/23(日) 23:42:14.02ID:b3Yb3C630 ApplicationRunner標準のApplicationArgumentsしか使ってないや
948デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2021/05/23(日) 23:48:00.16ID:8+E/rOe30949デフォルトの名無しさん (ワッチョイ 7601-L4y7)
2021/05/24(月) 00:37:58.81ID:VswUGgIR0 >>948
nullのときfalseにしたいだけだと思うよ
nullのときfalseにしたいだけだと思うよ
950デフォルトの名無しさん (ワッチョイ 979c-5O72)
2021/05/24(月) 01:14:48.10ID:E9VQgXzh0 >>949
nullのときにfalseにするならキャスト前に o == null で十分
instanceof 使わずに強制キャスト試みるなら k も要らんな
equals((Kyokumen)o) でいいな
どうせテキトーなコードなんだから
nullのときにfalseにするならキャスト前に o == null で十分
instanceof 使わずに強制キャスト試みるなら k も要らんな
equals((Kyokumen)o) でいいな
どうせテキトーなコードなんだから
951デフォルトの名無しさん (ワッチョイ 5a01-S/TN)
2021/05/24(月) 01:34:10.56ID:ffjxbchL0952デフォルトの名無しさん (ワッチョイ 7601-RnDR)
2021/05/24(月) 02:27:54.53ID:VswUGgIR0 >>950
それはキャストしたあとにヌルチェックするのが不十分ということにはならんよね
それはキャストしたあとにヌルチェックするのが不十分ということにはならんよね
953デフォルトの名無しさん (ワッチョイ 7601-RnDR)
2021/05/24(月) 02:29:52.62ID:VswUGgIR0 if分は三項演算子で十分と言ってるようなもので結局書き手の好みでしかないよ
954デフォルトの名無しさん (ワッチョイ 7601-RnDR)
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が勝手に追加してくれる。
if (o == null || getClass() != o.getClass()) return false;
GoogleのAutoなんとかやIDEが勝手に追加してくれる。
956デフォルトの名無しさん (ワッチョイ 4e10-fapT)
2021/05/25(火) 03:40:08.61ID:aPZR3p760957デフォルトの名無しさん (スップ Sdba-+uhp)
2021/05/25(火) 08:14:57.06ID:NjlFkzs4d method(Object o)
というメソッドを呼び出す時、String型だろうがInteger型だろうが引数に渡すことができますが
method(List<Object> oList)
というメソッドに対してList<String>やList<Integer>を引数に渡す事ができないのはなぜでしょうか?
というメソッドを呼び出す時、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("数字じゃない");
仕様で禁止
仮に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:LcgTzRfK0960デフォルトの名無しさん (ブーイモ MMab-T0K/)
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ではこういうことできなかったりしますか?
var stream = IntStream.range(0, 10).boxed();
このStreamから要素数を指定してグルーピングして
[0,1,2],[3,4,5],[7,8,9]
というStreamを得たいのですがどのようにデータを操作すれば良いですか?
Streamではこういうことできなかったりしますか?
962デフォルトの名無しさん (ワッチョイ ca02-uikQ)
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]]
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なので
グルーピングの処理を逐次でできるといんですけど
ありがとうございます!
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を試してみます
条件を指定した場合は要素を全部見ないといけないんでしょうけど
先頭から数件ごとにグルーピングする場合は理屈としてはシーケンシャルに
読み取れるはずなのでStreamでやれればと思ったんですけど、難しいですねこれ
いったん諦めます、もしわかったかたおられたら教えて欲しいです
私はRxJavaを試してみます
965デフォルトの名無しさん (ワッチョイ 7a4d-Maj3)
2021/06/05(土) 02:14:20.34ID:vquxfJwH0 Iterator使ってみた
https://ideone.com/X97Qfj
https://ideone.com/X97Qfj
966デフォルトの名無しさん (ワッチョイ ca02-uikQ)
2021/06/05(土) 02:32:28.30ID:3xxGtz3m0 >>964 すまんグルーピングじゃなくてただのwindowか...
RxJavaなら
Observable.range(0, 9).window(3).subscribe(....)
Streamだと今思いつかない。
RxJavaなら
Observable.range(0, 9).window(3).subscribe(....)
Streamだと今思いつかない。
967デフォルトの名無しさん (ワッチョイ 3e01-O+lH)
2021/06/05(土) 03:00:46.09ID:MxOWvxhv0968デフォルトの名無しさん (ワッチョイ 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]]
Kotlinだとこうなる
val values = (1..10).chunked(3)
println(values)
出力
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
969デフォルトの名無しさん (ワッチョイ 3e01-O+lH)
2021/06/05(土) 18:48:27.34ID:MxOWvxhv0 >>968
Kotlinすごいです!
Kotlinすごいです!
970デフォルトの名無しさん (テテンテンテン MMde-PbG/)
2021/06/05(土) 19:12:38.58ID:ZdF2VrafM Kotlin使いてえ
来週会社に行ったらみんなJavaを書くのをやめてKotlinしか使ってない世界にならないかなあ
あ、転職すりゃいーのか
来週会社に行ったらみんなJavaを書くのをやめてKotlinしか使ってない世界にならないかなあ
あ、転職すりゃいーのか
971デフォルトの名無しさん (ワッチョイ 0a01-UPQK)
2021/06/05(土) 21:27:20.46ID:f5S9H8yw0 >>968
chunkedが返すのは残念ながらList<List<T>>
chunkedが返すのは残念ながらList<List<T>>
972デフォルトの名無しさん (ワッチョイ 0a9f-PbG/)
2021/06/06(日) 04:18:19.03ID:5/y0UvPV0 sequenceに変換してからchunkedを呼べばいいんじゃないの?
973デフォルトの名無しさん (ワッチョイ caad-p9zx)
2021/06/06(日) 05:26:06.72ID:d9R15mSw0974デフォルトの名無しさん (ワッチョイ 8961-Fu2c)
2021/06/06(日) 07:26:35.60ID:lKbJDHfK0975デフォルトの名無しさん (テテンテンテン MMde-PbG/)
2021/06/06(日) 10:23:11.57ID:ybXqEAw1M >>973
Kotlin使いなのにまさかの初歩的質問だな
StreamとSequenceはパイプライン処理を抽象化したもので遅延評価される
振る舞いが違うし性能に差が出る
シーケンス図で説明できると早いんだが
1万件のリストを10回ずつmapとfilterして結果の先頭1件目を取り出す場合、リストなら必ず1万件全てに対して処理が走る
ストリームなら最初の1件目がお目当ての品だった場合、ストリームから後続の値が取り出されることすらなく処理が完了する
Kotlin使いなのにまさかの初歩的質問だな
StreamとSequenceはパイプライン処理を抽象化したもので遅延評価される
振る舞いが違うし性能に差が出る
シーケンス図で説明できると早いんだが
1万件のリストを10回ずつmapとfilterして結果の先頭1件目を取り出す場合、リストなら必ず1万件全てに対して処理が走る
ストリームなら最初の1件目がお目当ての品だった場合、ストリームから後続の値が取り出されることすらなく処理が完了する
976デフォルトの名無しさん (ワッチョイ 4a02-p9zx)
2021/06/06(日) 16:58:45.74ID:yq1OPwe70 そういう速さを求めるんだったら
そもそもJavaとかKotlinとか使わないと思う
そもそもJavaとかKotlinとか使わないと思う
977デフォルトの名無しさん (テテンテンテン MMde-PbG/)
2021/06/06(日) 18:00:10.88ID:YnVE4/VRM それってぼくは性能追求してないのでfor文で欲しいデータが見つかってもbreak全然書きませんって言ってるようなもんだ
Javaがよく使われる業務領域では社員数に応じてデータ量は増えるしRDBも絡む
小さなコレクションの基礎的な変形操作にしか活用してないならともかく、データの取り出し元がRDBだとか、繰り返し処理が全体に有意差を生むケースはいくらでも想定できる
Javaがよく使われる業務領域では社員数に応じてデータ量は増えるしRDBも絡む
小さなコレクションの基礎的な変形操作にしか活用してないならともかく、データの取り出し元がRDBだとか、繰り返し処理が全体に有意差を生むケースはいくらでも想定できる
978デフォルトの名無しさん (ワッチョイ caad-/d/6)
2021/06/06(日) 18:12:28.57ID:d9R15mSw0 >>975
JavaのStreamってKotlinのSequenceと同じなの?
JavaのStreamってKotlinのSequenceと同じなの?
979デフォルトの名無しさん (テテンテンテン MMde-PbG/)
2021/06/06(日) 18:42:58.32ID:YnVE4/VRM980デフォルトの名無しさん (ワッチョイ 4a02-p9zx)
2021/06/07(月) 01:52:52.07ID:rSnCAv9Z0 >>977
大部分のJavaプログラマはそういう理屈が分かっていないと思う
大部分のJavaプログラマはそういう理屈が分かっていないと思う
981デフォルトの名無しさん (ワッチョイ caad-IO17)
2021/06/07(月) 03:29:56.60ID:I7XktEYA0 >>975
なんで唐突に Sequence の話になっているのか?
なんで唐突に Sequence の話になっているのか?
982デフォルトの名無しさん (テテンテンテン MMde-PbG/)
2021/06/07(月) 10:46:02.62ID:1cyU61QNM983デフォルトの名無しさん (アウアウウー Sa11-/d/6)
2021/06/08(火) 09:50:05.38ID:CFn1v5aZa >>979
遅延なのは同じでは?
遅延なのは同じでは?
984デフォルトの名無しさん (ワッチョイ 0a9f-PbG/)
2021/06/08(火) 10:27:33.98ID:ZnZwWBys0 >>983
遅延なのは同じだよ?(うぜえ
遅延なのは同じだよ?(うぜえ
985デフォルトの名無しさん (ワッチョイ 7601-req2)
2021/06/18(金) 12:15:21.33ID:7QqIFMO20 質問です
static finalのフィールドにHashMapをセットして
getしか行わない場合は、マルチスレッドで使用しても安全ですか?
↓こういうふうに、コードはイメージです
class Test {
private static final HashMap<String, String> map;
public Test() {
map = new HashMap<String, String>();
map.put("a", "A");
map.put("b", "B");
}
public String get(String key) {
return map.get(key);
}
}
static finalのフィールドにHashMapをセットして
getしか行わない場合は、マルチスレッドで使用しても安全ですか?
↓こういうふうに、コードはイメージです
class Test {
private static final HashMap<String, String> map;
public Test() {
map = new HashMap<String, String>();
map.put("a", "A");
map.put("b", "B");
}
public String get(String key) {
return map.get(key);
}
}
986デフォルトの名無しさん (ワッチョイ 179c-Qfb9)
2021/06/18(金) 13:16:32.86ID:I//zPTNq0987デフォルトの名無しさん (ワッチョイ 7601-req2)
2021/06/18(金) 13:59:22.34ID:7QqIFMO20 >>986
ありがとうございます!
↓これなら良いですか? getはマルチスレッドでも安全ですか?
class Test {
private static final HashMap<String, String> map;
static {
map = new HashMap<String, String>();
map.put("a", "A");
map.put("b", "B");
}
public String get(String key) {
return map.get(key);
}
}
ありがとうございます!
↓これなら良いですか? getはマルチスレッドでも安全ですか?
class Test {
private static final HashMap<String, String> map;
static {
map = new HashMap<String, String>();
map.put("a", "A");
map.put("b", "B");
}
public String get(String key) {
return map.get(key);
}
}
988デフォルトの名無しさん (ワッチョイ b761-hhAf)
2021/06/18(金) 16:19:11.06ID:deCUai8H0 valueがイミュータブルかどうかは無視していいの?
keyがイミュータブルでないってのはありえないだろうけど。
keyがイミュータブルでないってのはありえないだろうけど。
989デフォルトの名無しさん (ワッチョイ 4e63-3RHv)
2021/06/18(金) 16:29:51.99ID:5G13yx380 いいだろ
これだとput公開されてないし
これだとput公開されてないし
990デフォルトの名無しさん (ワッチョイ 179c-Qfb9)
2021/06/18(金) 20:53:55.88ID:I//zPTNq0 >>987
いいね!
いいね!
991デフォルトの名無しさん (ワッチョイ b761-hhAf)
2021/06/18(金) 21:48:38.57ID:deCUai8H0992デフォルトの名無しさん (ワッチョイ 5a9f-B9KK)
2021/06/19(土) 00:02:36.19ID:/MxA8Vde0993デフォルトの名無しさん (ワッチョイ 5a9f-B9KK)
2021/06/19(土) 00:03:44.86ID:/MxA8Vde0 >>991
もちろん書き換えれば壊れるけど、質問者のレベルを察するに知りたいことはそこじゃないと思う
もちろん書き換えれば壊れるけど、質問者のレベルを察するに知りたいことはそこじゃないと思う
994987 (ワッチョイ 7601-req2)
2021/06/19(土) 02:17:51.58ID:mDxwNGWh0 みなさんありがとうございます!
995デフォルトの名無しさん (ワッチョイ 179c-b0Hj)
2021/06/19(土) 14:01:39.40ID:4UQ3DD5B0レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 巨専】
- こいせん 全レス転載禁止
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い
- マクラーレン、女性ドライバー3名を加入 [462275543]
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
