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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウウー Sa07-jGB0)
垢版 |
2021/06/29(火) 11:42:34.74ID:iGYT4fi4a
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

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

※前スレ
Java入門・初心者質問スレ Part.10
https://mevius.5ch.net/test/read.cgi/tech/1585721355/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/11/16(火) 23:02:08.57ID:SEINAMi60
やってること無茶苦茶だし
falatmapの使い方間違ってる上に中でmap使う意味も全くないし
頭大丈夫か?
2021/11/16(火) 23:10:11.11ID:gIvqaGJY0
Ruby には、順列・組合せなどがある
2021/11/16(火) 23:10:20.65ID:if+fIjwWM
そもそもList二つ使って管理しようってのが間違い
2021/11/17(水) 17:14:54.10ID:CbT8HrOI0
一応出来たんですけどなんか無理矢理感が

List<Integer> int1 = List.of(2, 8, 13);
List<Integer> int2 = List.of(5, 7, 10);

var op = int1.stream().flatMap(i -> int2.stream().map(j -> new ArrayList<Integer>(Arrays.asList(i, j, Math.abs(i - j)))))
.sorted((ar1, ar2) -> ar1.get(2) - ar2.get(2))
.findFirst();
System.out.println(op.get().get(0) + ", " + op.get().get(1));
2021/11/17(水) 21:30:24.18ID:ptLosp4w0
こいつ人の言うことなんも聞いてねーな
こんなゴミコードメンテさせられたら秒で削除するわ
2021/11/18(木) 00:03:23.13ID:LxH8QNZ50
>>284
>>285
むちゃくちゃどころかストリームでデカルト積求めるオーソドックスなやり方だよ、君ストリーム童貞でしょw
2021/11/18(木) 00:08:18.42ID:LxH8QNZ50
>>288
きれいな解法だと思うけどね
なんとなくもっさりして見えるのは標準ライブラリのせい
2021/11/18(木) 00:12:52.21ID:LxH8QNZ50
>>289
君がメンテできるコードなんてあるの?w
2021/11/18(木) 00:19:30.24ID:LxH8QNZ50
Java16以上ならリストよりレコード使ったがわかりやすいかも
2021/11/18(木) 01:40:07.01ID:/67wKdfd0
阿呆がワッチョイ変えて必死に反論しててワロタ
こんなバカみたいな書き方がオーソドックスとかSNSで行け低能
2021/11/18(木) 01:46:33.21ID:/67wKdfd0
streamでここまで見るに堪えないゴミコード書く奴初めて見たわ
意味ないmapを作ったり要素に固定値指定してソートしたり
こんなド素人コーディング見つけたら1時間説教したあとにクビだよ低能
2021/11/18(木) 01:56:40.35ID:/67wKdfd0
差が同じ場合のケースも考慮してないし
こんな糞みたいな集合の作り方がオーソドックス?w
あほ
2021/11/18(木) 08:42:00.17ID:LxH8QNZ50
あっやっぱり童貞くんだったw
2021/11/18(木) 08:42:57.35ID:LxH8QNZ50
いまどきストリーム使えない童貞くんの方が戦力外だよ
2021/11/18(木) 10:34:15.70ID:/ndm5OPv0
異論と共にコード晒してたらかっこいいのになぁ
中身は何も無しで異論唱えてもなぁ
ただの雑音なんだよなぁ
300デフォルトの名無しさん (ワッチョイ 23ad-wd7R)
垢版 |
2021/11/18(木) 23:58:30.13ID:DeOwJr9O0
Kotlin で書き直すとこんな感じかな。

import kotlin.math.abs

val int1 = listOf(2, 8, 13)
val int2 = listOf(5, 7, 10)

val op = int1.flatMap { i -> int2.map { j -> listOf(i, j, abs(i - j)) }}.sortedWith(compareBy { it.get(2) }).first()

println("${op[0]}, ${op[1]}")
2021/11/19(金) 02:46:30.80ID:IMqIOCVz0
Kotlinだと全然読めるな
現代の言語のシンタックスは流石だわ
2021/11/19(金) 07:57:18.81ID:/Xa6Jv+10
でもパフォーマンスはforループの方が圧倒的によさそう。
2021/11/19(金) 10:24:36.13ID:RIW627FqM
つーかこれに関しては見やすさもforの方が上回るんじゃ
2021/11/19(金) 12:11:55.49ID:D8WiRpRX0
一番小さいのをとってくるだけだから畳み込みながらやらないと効率悪い気がする

val absComparator = compareBy<Pair<Int, Int>> { abs(it.first - it.second) }
val op = int1.minOfWith(absComparator, {x -> int2.minOfWith(absComparator, {y -> Pair(x, y)})})
2021/11/19(金) 17:49:39.22ID:KzbAjc2i0
ファイル書き込みと例外処理について質問です
下記のコードにおいて、FileWriterインスタンスfwをnullで初期化するのと、
finallyブロック内でif文を設ける必要性が分かりません
どなたか回答お願いします

https://paiza.io/projects/XT01g3Tvsegsad5p90xraA
2021/11/19(金) 18:13:11.51ID:khwX74+wM
>>305
FileWriterをnewするときに例外が発生する可能性があるから
最近のバージョンのJavaではtry-with-resourcesというものがあり、このような醜悪で冗長極まりない記述は不要になっている
2021/11/19(金) 19:15:06.86ID:KzbAjc2i0
>>306
ありがとうございます

自分ちょっと頭が弱いもので、疑問が残りました
「インスタンス化の時に例外が発生する」という問題は、
try-catch-finally文にすることで解決すると思うのですが、
それに加えてなぜ初期化やnullチェックが必要なのか分からないです
308デフォルトの名無しさん (ワッチョイ 5f01-iAR7)
垢版 |
2021/11/19(金) 19:23:05.72ID:hokyy1gq0
JavaのJFrameについて.
for文でaddを保持したいのだけれど、どうすればよい?
このままだと、最後のtitle4しか表示されぬ。

JFrame jFrame = new JFrame();
JLabel title1 = new JLabel();

title1.setText("アイテム名");
title1.setBounds(10, 50, 400, 20);

JLabel[] title = {title1,title2,title3,title4} ;

for(int i=0;i>4;i++) {
jFrame.add(title[i]);
}
309デフォルトの名無しさん (ワッチョイ 5f01-iAR7)
垢版 |
2021/11/19(金) 19:42:47.84ID:hokyy1gq0
>>308
少し弄ったがこれも失敗...

String[] titleName = {"アイテム名","イベント","利益率","調合確率"} ;
JLabel title = new JLabel();

for(int i=0;i>4;i++) {
title.setText(titleName[i]);
title.setBounds(10, (50+(i*30)), 400, 20);
jFrame.add(title);

title = null ;
}
2021/11/19(金) 19:46:14.47ID:khwX74+wM
>>307
じゃあインスタンス化したときにも例外が発生することを考慮して自分で書いてみたらいい
なんでそうなるのかわかるから
2021/11/19(金) 19:55:24.88ID:R6c5Wq07M
>>309
LayoutManager設定しないと駄目だったような
312デフォルトの名無しさん (ワッチョイ 5f01-iAR7)
垢版 |
2021/11/19(金) 20:11:32.52ID:hokyy1gq0
>>311
一応個別で作ると、それぞれ表示されていました。

addを複数代わりに使う代わりに、for文で横着しようとしております><
2021/11/19(金) 20:18:30.81ID:/Xa6Jv+10
>>309
これでどうだ

String[] titleName = {"アイテム名","イベント","利益率","調合確率"} ;
JLabel[] titles = new JLabel[4];
for (int i = 0 ; i < 4 ; i++)
titles[i] = new JLabel();
Container p = getContentPane() ;
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
setBounds(1000, 300, 300, 110);
for(int i = 0; i < 4 ; i++) {
titles[i].setText(titleName[i]);
p.add(titles[i]);
}
setVisible (true);
2021/11/19(金) 20:31:57.60ID:/Xa6Jv+10
訂正

String[] titleName = {"アイテム名","イベント","利益率","調合確率"} ;
JLabel[] titles = new JLabel[4];

for (int i = 0 ; i < 4 ; i++)
titles[i] = new JLabel();

JFrame jFrame = new JFrame();
Container p = jFrame.getContentPane() ;
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));

jFrame.setBounds(1000, 300, 300, 110);

for(int i = 0; i < 4 ; i++) {
titles[i].setText(titleName[i]);
p.add(titles[i]);
}
jFrame.setVisible (true);
315デフォルトの名無しさん (ワッチョイ 5f01-iAR7)
垢版 |
2021/11/19(金) 20:40:10.12ID:hokyy1gq0
>>314
やはりaddは複数ないとだめなのか..?

表示されない...
2021/11/19(金) 20:51:26.11ID:yQMYW1lb0
くだらねぇゴミコード書きまくって糞ド低能ども
ゴミの日記帳じゃねーぞアホ
317デフォルトの名無しさん (ワッチョイ 5f01-iAR7)
垢版 |
2021/11/19(金) 20:58:13.96ID:hokyy1gq0
>>316
あ、残業お疲れ様です...
かえって早々ゴミコード見せてしまってすみません

つ酒
318デフォルトの名無しさん (ワッチョイ 5f01-iAR7)
垢版 |
2021/11/19(金) 21:44:56.21ID:hokyy1gq0
>>311
他のドロップダウンなどに干渉してただけでした
ありがとうございました..
2021/11/19(金) 23:30:54.51ID:KzbAjc2i0
>>310
ありがとうございました

https://paiza.io/projects/Y1Cd7wDLP3NSkw-FKmV90A
320デフォルトの名無しさん (ワッチョイ e2ad-+VBe)
垢版 |
2021/11/20(土) 03:05:35.28ID:PPXRLNML0
>>303
そうだな。しかも全部差を求めて貯め込んでソートするという無駄も省ける。
https://paiza.io/projects/uXVzkefLXmypgkr0JkFBLA
2021/11/20(土) 03:10:31.11ID:PPXRLNML0
for の i, j にそのまんま配列の値を入れれば良いだけだった。こっちの方がすっきりするな。
https://paiza.io/projects/-jlvNt9oDKblL8Lsgs-Ouw
2021/11/20(土) 07:37:08.95ID:7hjyIAPL0
>>319
fw.close();
をする時には、必ず、fw が有効じゃないと、そこでエラーになる

Ruby でよく見る、No Method Error

レシーバーがnil・無効な場合に、メソッドを呼んで、エラー。
nil に、.close() というメソッドは存在しません

nil.close();
2021/11/20(土) 14:49:46.40ID:cuA+in15d
リソースに書き込み可能なファイルを置くっていうのは悪手なんでしょうか?
JARにすると参照して書き込むような仕様になってないような気がしてなりません
2021/11/20(土) 20:21:26.38ID:dgZ4cXY/d
ブックマークレットでtomorrowの部分を自動クリックするものを作成しようとしましたが出来ませんてした。

じゃ場すく利ぷと:(fuえぬction(){docゆーment.geティーElいーmeえぬtsByClえーssNaえむe("div.btえぬs>bティーnえすt"))[0].clあいck();

以下ソースです
<dあいv claエスs="bティーns">
<diぶい clエーss="btエヌst">
<sピーan clエーss="ビーtn-tiティーle">paper : </spaエヌ>
<a hアールef="じゃばく巣区りぷと:;" シーlass="ビーtn-paper aシーtive" data-link="英数字記載">today</エー>
<a hrイーf="じゃ場す苦りぷと:;" clえーss="bティーn-paper" ディーata-lアイnk="上記とは違う英数字記載">yesterday</えー>
<a hreエフ="じゃば酢く理ぷと:;" claエスs="btエヌ-paper" daティーa-エルink="上記とは違う英数字記載">tomorrow</エ〜>
クリックしたい箇所はURL1個につき1つですが、tomorrowの位置が2つ目だったり3つ目だったりします、URLが10個以上あり、1つ目をブラウザで開き該当箇所クリックし閉じる、2つ目をブラウザで開き閉じるを繰り返していきたいです。
1つ目と2つ目のURLを開く時間の間隔は10秒から15秒の間でランダムで開きたいですが難しければ、手動で1つ1つブックマークレット作成する方法でもよいです。
2021/11/20(土) 20:42:51.00ID:0jVCVD2p0
こんなゴミみたいな事も自力で出来ない奴って
ランサーズとかに転がってるゴミみたいな仕事を遠足のオヤツ代にもならない金額で出してるアホの匂いがする
消えろゴミ
2021/11/20(土) 21:09:52.75ID:hZllS+yx0
寂しいの?
327デフォルトの名無しさん (ワッチョイ a302-lqrY)
垢版 |
2021/11/21(日) 00:49:01.15ID:v9BZ8Yww0
>>326
嫌なやつ
2021/11/21(日) 03:40:45.34ID:zYUtuXs90
Ruby on Rails では、Capybara で、ボタンのラベルなどでも、要素を特定できる

selenium webdriver でも、複数の要素を取得してから、
要素のテキストで、一致するものをフィルターすれば良い
2021/11/21(日) 10:28:53.51ID:L3pO4Cg20
>>327
寂しいの?
2021/11/21(日) 19:32:35.44ID:TGesPHS+0
BreakIteratorの使い方なんですが、コンストラクタに渡すロケールというのは処理するテキスト
のロケール(言語)のことなんでしょうか。
また、複数の言語が混ざっている場合(例えば日本語と英語)、その部分毎にロケールの違う
BreakIteratorのインスタンスを生成して処理する必要があるでしょうか。
2021/11/21(日) 20:09:24.51ID:5aHtryGm0
ググレカス
2021/11/21(日) 20:31:44.65ID:+TGgWle3H
>>331
ただのカスはだまってろ
2021/11/22(月) 19:54:49.87ID:oUrVJFlWM
spring等のフレームワークを使わないプログラムについて、何か呼び名とかあったりしますか?
2021/11/22(月) 21:33:30.80ID:4ZtpQHBF0
近頃はそういうのをピュアJavaと呼ぶようだ
2021/11/22(月) 21:43:13.86ID:VeqIEgvA0
>>332
質問以前の糞ゴミ低能はママにでも聞いてろ糞馬鹿が
2021/11/22(月) 21:47:21.34ID:VeqIEgvA0
ほんとアホどもって自分で考える思考能力がゼロなんだよな
誇張でもなんでもなくガチでゼロなんだよな
消えろ糞ゴミ
337デフォルトの名無しさん (アウアウキー Sac7-zUxy)
垢版 |
2021/11/23(火) 14:35:39.39ID:HIAOM8SHa
おまえもな
338デフォルトの名無しさん (ワッチョイ d71d-ZQOw)
垢版 |
2021/11/28(日) 23:15:08.69ID:sBb+QnZD0
入門書に、変数を宣言したら一緒に初期化も行うように、と書いてありましたが、
なぜでしょうか?
2021/11/29(月) 00:40:36.66ID:nECKSNfq0
>>338
初期化するのを忘れて
いきなり参照して
エラーになるのを防ぐため
2021/11/29(月) 01:10:13.43ID:LoG+BcMt0
>>339
レスありがとうございます

0やnullなどでも取り敢えず入れとくべきでしょうか?
2021/11/30(火) 08:53:25.75ID:lDymfPAR0
ArrayList<Integer>に格納されている整数を
ArrayList<String>に書き込みたいのですが
型を変換するためにどのような方法がありますか?
2021/11/30(火) 09:07:40.31ID:ejbGwds7d
>>341
integerList.stream().map(Integer::toString).collect(Collectors.toCollection(ArrayList::new))
2021/12/01(水) 21:13:19.46ID:9xM3HIL+a
>>16
Java Swing はどうなった?
2021/12/01(水) 23:10:11.53ID:Nzn6ZqT60
>>340
無意味な値を入れておくのはおすすめできない。むしろ値設定し忘れたまま参照したのならばコンパイラがエラー出してくれるので、不具合入りづらくなる。
ローカル変数の場合ね。
2021/12/02(木) 20:18:54.60ID:Yn78umYb0
>>338
答えになってないかもしれないが
「変数宣言したけど初期化しようかどうしようか?」
って迷ったら、まずその変数宣言は
本当に必要なのか検討するべきだと思います。

こういう時に宣言したら、無意味な宣言だった事が多々あった
様な気がする
2021/12/03(金) 04:05:51.31ID:E2QPyYLa0
関白宣言も無意味な宣言だった
2021/12/03(金) 22:51:14.37ID:aQOB5Uc/0
Javaブロンズの勉強中ですがネスト使われると実行順番が訳分かんなくなります。
何か見分けるコツ等はありますか?
2021/12/04(土) 03:59:18.02ID:2dOPVhNC0
ネスト?インデントや中括弧で見分ければ良いのでは?
2021/12/04(土) 08:16:16.32ID:E5dlmr340
>>347
こういった問題出ると解説読んでも初見で分かる気がしないです
https://i.imgur.com/qbvi6A1.jpg
2021/12/04(土) 08:16:49.27ID:E5dlmr340
>>348
アンカミスです
2021/12/04(土) 11:24:43.21ID:6X/WK2MH0
>>349
最初は意識してControl Flowをしっかり押さえるようにすればいいと思う
その例だとControl FlowにあたるのはLoop:for, do~while, if, break:Loop
慣れの問題なので1週間もすればこのレベルはすぐわかるようになる
2021/12/04(土) 12:51:46.00ID:kdi4wOGzd
>>349
コンパイルエラーだろ
全角スペースが混入している可能性を否定できない
2021/12/04(土) 16:39:33.54ID:BPItdQ710
>>349
なにこれjava??
2021/12/04(土) 17:17:24.07ID:E5dlmr340
>>353
Javaの参考書の問題
答えはEだけど、見るだけで嫌になる
https://i.imgur.com/kDK2QkL.jpg
2021/12/04(土) 17:36:38.99ID:d5QmhWSv0
>>354
ワンステップずつ根気よく追いかけるしかない、これは試験だけの話じゃない、バグ取りでも必要な技術だ
2021/12/04(土) 18:52:35.11ID:oINNFZVE0
実務じゃまずお目にかかれないような絶望的カオスコードだけど
ステップ数も短いしマジックナンバーもないからこれぐらい読めないと実務なんかできねー罠
2021/12/05(日) 07:10:00.05ID:MEvOeHpH0
うはーーー
ラベルなんてあったなそういや…
2021/12/05(日) 13:25:39.84ID:z29FHLOh0
すいません何度も
解説が無いからイマイチ分からないんですが
6行目のgetId()メソッドの()内に、受け取る変数を入れなくても戻り値が入ってるのは何でなんですか?
https://i.imgur.com/lzBNxJh.jpg
2021/12/05(日) 15:19:31.40ID:JJKsfAEf0
だってフィールド変数だし
2021/12/05(日) 21:28:53.34ID:0viUExmL0
そういう超低次元な疑問が湧くのはイマイチどころか何一つ理解してない
入門書の0ページからやり直してこい
2021/12/05(日) 21:39:40.77ID:zwYkAqY10
「戻り値が入ってる」とは?
2021/12/06(月) 00:19:01.66ID:9ZPSrILUM
なぜ解説がないか考えるべき
2021/12/06(月) 00:23:29.69ID:r7VwuEAS0
みんな通ってきた道や。頑張りや
2021/12/06(月) 01:43:16.96ID:j+mhK0u20
こんな低レベルな疑問はお前と質問者だけしか通ってねーよ
2021/12/06(月) 09:13:39.33ID:zv9eF9C00
>>358
返す値は受け取る変数の有無とは無関係。getId() が int の値を返す事はメソッド名の前にある int が表している。
そして return で int の値を返している。
2021/12/06(月) 14:07:39.75ID:Gxdd3r0p0
>>358
int hoge(){ return 10; }
って書いてあっても、10が返るからな。
367デフォルトの名無しさん (アウアウウー Sa3a-CsME)
垢版 |
2021/12/07(火) 14:37:55.31ID:wq7RWe/ma
Java噴火
2021/12/07(火) 16:45:08.43ID:0B2DkkT10
高圧的な奴ではあるが、>>360の気持ちもわかる
2021/12/07(火) 19:52:49.84ID:INHswxu40
ArrayListのIntegerの5x5の二次元配列があります。
これを5x5マスで出力したいのですがどのような方法がありますか?
2021/12/07(火) 20:12:39.98ID:T/1s1h8er
5x5マスってなんやねん
2021/12/07(火) 20:23:49.28ID:INHswxu40
12345
12345
12345
12345
12345

↑こういうのです。
2021/12/07(火) 20:51:24.60ID:2HvIFN7Br
素直に2重ループ回しておけばいいんでない?
あえてStream API使いたいとかなら、joinとか使いつつ文字列としてつなげて、その後に出力とか。
2021/12/07(火) 21:47:18.94ID:T/1s1h8er
>>371
Hello Worldはやり方わかります?
2021/12/07(火) 22:03:25.89ID:0B2DkkT10
>>373
それで「わかりません」ってレスされたらどう返すんだ?
2021/12/07(火) 22:33:17.80ID:T/1s1h8er
>>374
何も
質問内容からして似たようなものでしょうし
2021/12/09(木) 20:26:53.11ID:syH9ezze0
Javaブロンズ問題解いてるけど、選択肢でコンパイルエラーと実行エラーの2択に絞れた時の違いが1番迷う
2021/12/09(木) 21:56:00.15ID:ebZaputG0
どんな問題なのか想像できないので、何に悩むのかがよくわからない……
どんな問題なの?
2021/12/09(木) 21:59:22.96ID:xZpHB4Pb0
androidでcatchした例外を再throwしたいが、finallyがあるとthrowされない。
catchでフラグ立ててfinallyでフラグチェックしてthrow new IOexception()すると再throw出来たが、何か良い方法ありますか?
379デフォルトの名無しさん (ワッチョイ dfad-8/hI)
垢版 |
2021/12/10(金) 01:34:36.83ID:Uh57IFJZ0
>>378
え?再throwできない?
必要最小限にまで省略した動くソースを公開してみてくれ。
2021/12/10(金) 02:04:58.46ID:5sfvixhL0
finallyにreturn書いているとかじゃ無いよね?
2021/12/10(金) 05:05:35.81ID:2IheIvSs0
>>380
finallyにreturnを書いてます。
finallyの外にreturnを移動させて確認します。
また報告します。
2021/12/10(金) 05:08:25.88ID:2IheIvSs0
>>379
すみません、一つ上で解決しなかったらアップします。
2021/12/10(金) 07:15:08.16ID:2IheIvSs0
finally節にreturn があることが原因でした。
ありがとうございます。
hoge() {
    semaphore.tryAcquire();
    int data = 0;
    try {
        // IOEceptionの可能性がある処理
    } catch (Exception e) {
        throw e;
    } finally {
        semaphore.release();
    }
    return data;
}
2021/12/10(金) 07:27:58.67ID:1o54cC/p0
プロゲートはJavaクリアしたけど、そこから何をやればいいか分からん
結局どうやってアプリやら作るのか分からんし作りたい物もないし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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