次スレを立てる時は本文の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
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 0fba-HyQo)
2020/04/01(水) 15:09:15.95ID:9COIb57q0952デフォルトの名無しさん (ワッチョイ 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:4UQ3DD5B0996デフォルトの名無しさん (スッップ Sdba-ETxa)
2021/06/20(日) 16:54:15.78ID:Kf2rTDe5d Flow APIでPub/Sub処理作ってデバッグしてみたんだけど
eclipseもintellijも設定したブレイクポイントで止まってくれない
具体的にはSubscriberインターフェースを実装したクラスでpublishした時に呼ばれるonNextメソッドの部分
処理中にいくつかコンソール出力を仕込んであって途中までは呼び出されてるんだけどそこから先で止まってるっぽくてデバッグしたいんだけど
確認できてるコンソール出力処理より前にブレイクポイントを設定しても止まってくれない
Javaの標準クラスを経由して呼び出される独自のクラスはデバッグできないとか制約あったりするんだろうか?
eclipseもintellijも設定したブレイクポイントで止まってくれない
具体的にはSubscriberインターフェースを実装したクラスでpublishした時に呼ばれるonNextメソッドの部分
処理中にいくつかコンソール出力を仕込んであって途中までは呼び出されてるんだけどそこから先で止まってるっぽくてデバッグしたいんだけど
確認できてるコンソール出力処理より前にブレイクポイントを設定しても止まってくれない
Javaの標準クラスを経由して呼び出される独自のクラスはデバッグできないとか制約あったりするんだろうか?
997デフォルトの名無しさん (アウアウウー Sad3-GPmn)
2021/06/25(金) 14:33:03.71ID:sV38Jy47a gradleでビルドしてるのだけどテストを除外してビルドするかんたんな方法はないの?
「テストを実行しない」ではなくテストコードそのものを生成物(jar)に入れたくないという意味で
「テストを実行しない」ではなくテストコードそのものを生成物(jar)に入れたくないという意味で
998デフォルトの名無しさん (テテンテンテン MM4f-LEZG)
2021/06/25(金) 21:26:23.89ID:fsqrLronM src/test 側に置いてたらソースセットの設定が効いてjarには入らないよ
jarに入る事故が起こってるのだとしたら多分スクリプトで余計なことしてる
jarに入る事故が起こってるのだとしたら多分スクリプトで余計なことしてる
999デフォルトの名無しさん (アウアウウー Sad3-GPmn)
2021/06/25(金) 23:07:44.76ID:sV38Jy47a1000デフォルトの名無しさん (ワッチョイ 3fad-wfqF)
2021/06/26(土) 14:11:00.72ID:RjjpcdnV0 100000000000000000000000000000000000000000000!
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 450日 23時間 1分 46秒
新しいスレッドを立ててください。
life time: 450日 23時間 1分 46秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【ぺこ専🐰】なんG 兎田ぺこら実況スレ🏡【ホロライブ▶】
- 【悲報】三田村邦彦「なんなんだよ、この中国の役人の無礼な態度はよー!」 [616817505]
- ネトウヨ「日本人全員の命を犠牲にしてでも台湾を守るべき!」ぶっちゃけそこまでする必要あるか? [881676371]
