- 1 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 23:09:24.14 ID:sB1GrBUA.net]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 (p)ttp://www.wikiroom.com/java/?path,classpath ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 ・String に == は使うな。equals() を使え。※ 質問時の心得 ・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。 ・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。 前スレ ★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1435295532/
- 492 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 11:29:35.35 ID:pukhMxdP.net]
- 多階層の継承の是非ってことか?
言語や開発スタイルによるけど、Javaでは一般に良くないとされることが多い Javaでは複数のクラスに継承で同じ機能を持たせるよりも 単機能のクラスを繰り返し再利用するほうが好まれる傾向がある
- 493 名前:デフォルトの名無しさん [2015/12/13(日) 11:47:36.33 ID:heE0GRcy.net]
- >>487
すいません。知識不足で申し訳ないのですが 多階層の継承=多重継承のことで宜しいでしょうか?
- 494 名前:461 mailto:sage [2015/12/13(日) 11:48:43.41 ID:DH+WqVZ8.net]
- 昨日に引き続き質問ばかりですみません
あれからListを調べて実装しようと思ったのですが調べてみたものの 「エラー: addに適切なメソッドが見つかりません(int,int,int,int)」と出て出来ません 分かる方いたらお願いします public static ArrayList<Rect> rects =new ArrayList<Rect>(); rects.add(1,1,1,1); public Rect(int xx,int yy,int ww,int hh){ x=xx; y=yy; WIDTH=ww; HEIGHT=hh; } エラー: addに適切なメソッドが見つかりません(int,int,int,int) rects.add(1,1,1,1); ^ メソッド Collection.add(Rect)は使用できません (実引数リストと仮引数リストの長さが異なります) メソッド List.add(Rect)は使用できません (実引数リストと仮引数リストの長さが異なります) メソッド List.add(int,Rect)は使用できません (実引数リストと仮引数リストの長さが異なります) まだまだ同じようなエラーが出ています
- 495 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 11:53:18.96 ID:pukhMxdP.net]
- >>488
いや、単に深い階層の継承という意味で言った 継承使わなくてもコードの再利用はできるよ? クラスDでCの機能を使いたいなら、 Dの中でCのインスタンス作ってメソッド呼べばいいだけだ
- 496 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 11:55:46.11 ID:heE0GRcy.net]
- >>490
やはりそれが基本ですよね わかりました!ありがとうございます! 見直します!
- 497 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 12:05:12.94 ID:jnG/4H+6.net]
- rects.add(new Rect(1,1,1,1))をやりたいのでは
- 498 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 12:50:08.71 ID:DH+WqVZ8.net]
- >>492
ありがとうございます。その通りでした。 こういう細かい?所が全然分からなくておちんこもみそう
- 499 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 13:05:48.03 ID:heE0GRcy.net]
- >>493
すいません・・ こういったスレで下ネタはご遠慮願います。 一応女子も見てるので。
- 500 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 13:37:30.72 ID:npnIFy9b.net]
- ついでにハゲネタも慎んでくれ
- 501 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 15:36:00.11 ID:K7mToryR.net]
- >>495
すまん、ハゲ
- 502 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 16:01:10.80 ID:QpwRxxX8.net]
- ハゲると語尾がハゲになるの知ってたハゲ?
- 503 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:03:51.47 ID:DKuoc3J6.net]
- Javaで
new int[1000][1000] ってやった場合4m分の連続領域に確保されるの? 4K分ずつどこに確保されるかはシステムまかせ?
- 504 名前:デフォルトの名無しさん [2015/12/14(月) 02:43:04.17 ID:E4E5E56o.net]
- ハゲはそういう人がハゲてるとうちの死んだハゲが言っとったぞハゲ。
- 505 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 07:46:24.50 ID:gQjLPXyy.net]
- >>498
言語仕様的には一つの配列が連続した記憶域に確保されなければならない、 という制約すらなかったような。
- 506 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 07:59:19.85 ID:vttUzqTs.net]
- Java言語じゃなくてJava VMの仕様を聞いてるんだろ
- 507 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 08:32:58.84 ID:9AomEZuR.net]
- むかしOpenJDKのソース見たときは、連続して取ろうという努力の欠片も見えなかった気が
どうせGCでワケワカメになるだろうしね
- 508 名前:名無しさん@そうだ選挙に行こう [2015/12/14(月) 08:58:18.66 ID:E4E5E56o.net]
- ハゲてしまうのはしかたないにしても
心までハゲてしまってはいかんぞ。
- 509 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 10:47:04.66 ID:DSJzQQ/E.net]
- 心に毛を生やしておけってあんたw
- 510 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 11:19:29.33 ID:lTDtx347.net]
- 心臓に毛を生やしておけの間違いだろうw
- 511 名前:名無しさん@そうだ選挙に行こう [2015/12/14(月) 15:11:56.24 ID:E4E5E56o.net]
- だが残念なことにこのスレには
心までハゲてしまったものもいる。
- 512 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 16:34:04.19 ID:8hsP67Jn.net]
- あぁかみさま....
- 513 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 16:38:35.92 ID:DuaClO19.net]
- ああっ女神さまっ
- 514 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 18:12:48.49 ID:4W4h1hyk.net]
- Eclipseでservlet作る際、LAN内からしかアクセスさせないページと、WANからもアクセス出来るページはどうやって設定したら良いんでしょうか?
- 515 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 21:30:20.22 ID:09y2bK/v.net]
- うん、スレチ。
スモチ
- 516 名前:デフォルトの名無しさん [2015/12/14(月) 23:10:45.93 ID:JrPDc31a.net]
- >>509
eclipseと関係ない話だな。
- 517 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 23:23:14.41 ID:R0gDPv6y.net]
- >>509
if(ipaddr==WAN) { // WAN } else { // LAN }
- 518 名前:スッキリ厨 mailto:sage [2015/12/14(月) 23:52:26.80 ID:OK11/t54.net]
- 君は本当に、servletで作っているの?
JSPの間違いだろ? スッキリわかる サーブレット&JSP入門、2014 を読んで
- 519 名前:509 mailto:sage [2015/12/15(火) 01:04:35.60 ID:+Galom3J.net]
- すみません。
結局よく分からないのでTomcatで制限かけることにしました。
- 520 名前:デフォルトの名無しさん [2015/12/15(火) 02:12:36.73 ID:/v0DDHjK.net]
- >>513
JSPとサーブレットは使い分けるものだよ。
- 521 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 11:45:52.24 ID:TUtcbWce.net]
- あぁ^〜CPU稼働率がぴょんぴょんするんじゃぁ^〜
- 522 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 16:44:39.41 ID:YbKXUJ+M.net]
- byte[] input = new byte[] {1, 2, 3, 0, 4, 5, 0, 0, 0};
// 末尾の0を削りたい byte[] expected = new byte[] {1, 2, 3, 0, 4, 5}; 今はforループで配列末尾から0かどうか調べていって、 0以外が見つかった時点で先頭からその位置までの部分配列を作っています。 もう少し泥臭くないやり方があれば教えていただけますか?
- 523 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 18:39:42.37 ID:KUVvK8dp.net]
- こういうの自分も気になる。
jvmがbyte配列を連続領域に確保するのか 内部的にリンクリストで格納するのか? 配列長によって変わって来るのかな。 アルゴリズム次第でパフォーマンスにはねそう。
- 524 名前:デフォルトの名無しさん mailto:sagete [2015/12/15(火) 19:02:05.44 ID:VGRXZIm0.net]
- 逆順にして先頭から連続した0を削除して(あるいはコピーせず)また逆順にする
- 525 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 19:17:33.37 ID:TvkotTKK.net]
- ListにしてlastIndexOf使ってそこまで配列に戻す
- 526 名前:デフォルトの名無しさん mailto:sage [2015/12/15(火) 23:10:46.79 ID:zWEvy03T.net]
- >>517
前にこのスレでやり方紹介されてたよ https://paiza.io/projects/YV6jAgzFUjU1wBCKgLjRMw byte[] input = new byte[] {1, 2, 3, 0, 4, 5, 0, 0, 0}; byte[] expected = new String(input, "ASCII").replaceAll("\0+$","").getBytes(); System.out.println(Arrays.toString(input)); System.out.println(Arrays.toString(expected));
- 527 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 00:01:13.88 ID:KjHRdIDG.net]
- >>521
すまんそれ俺がいうのも何だがメモリリークする
- 528 名前:デフォルトの名無しさん [2015/12/16(水) 00:05:04.08 ID:STRntoUw.net]
- >>522
マジか?おもしろいな。 詳しく教えてちょ。
- 529 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 00:19:33.11 ID:3yFYtclf.net]
- 不正な文字コードになるbyte配列で文字列生成して操作するんだから動作保障されてないし危険だわな
- 530 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 00:19:49.96 ID:KjHRdIDG.net]
- >>523
よくわからんが、どうもreplaceAll()の中の人に問題があるようで printlnでは末尾0群が消えてるようにみえるし lengthとかで見ても縮められているようなのだが、 内部では領域が残っているっぽく、GCされなくなるっぽい ちなOracle JDK 1.8
- 531 名前:デフォルトの名無しさん [2015/12/16(水) 00:27:33.31 ID:STRntoUw.net]
- >>525
おお。標準ライブラリにもバグがあるものなんだな。すげー。
- 532 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 00:35:04.08 ID:G9F0Y7Zn.net]
- >>518
ArrayList と、LinkedList
- 533 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 04:01:16.68 ID:3yFYtclf.net]
- >>525
OracleJDK8のソースコードは見てないがOracleJDK8だけのバグかもしれんね OpenJDK8のほうはソースコード見てきたが特に問題なかったぞ もし問題があるのだとしたらCharsetDecoder()の実装の問題か、char型配列のGC処理に問題があるかだぞ hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/
- 534 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 09:13:13.10 ID:cUS4LgFL.net]
- 517です
レスくださった皆様ありがとうございます メモリリーク周りのお話も興味深く読みました ちなみに、配列と同じ要素を持つ変更可能なListってどう作るのが一般的なのでしょうか 私のやり方はこんな感じです List<String> list = new ArrayList(Arrays.asList(inputStrArray));
- 535 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 10:14:53.15 ID:hzrDto42.net]
- >>525
ideone.com/9zpOie んー、これGCされてるよなー コードどっか間違えてる?
- 536 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 12:29:28.89 ID:xeWyKFIm.net]
- 無駄に長い文字列を作成したい。ランダムでも固定でも何でも良いが、長さは指定したい。
例えばPerlだと "0"x1000 とすれば、0が1000文字連なった文字列が得られます。 Javaはそれほど詳しくなく、思いつくのは for(i=0;i<targetSize;i++){longstr+="0";} 程度のものしか思いつかず、時間がかかりすぎる。 以上のような内容なのですが、JAVAで文字を量産するのになにか良い方法はありませんでしょうか? 宜しくお願いします
- 537 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 12:33:53.73 ID:xeWyKFIm.net]
- すいません、StringWriterを使った方法を見つけました。
- 538 名前:デフォルトの名無しさん mailto:sage [2015/12/16(水) 13:03:12.87 ID:hzrDto42.net]
- char[] chars = new char[1000];
java.util.Arrays.fill(chars, '0'); String longstr = new String(chars);
- 539 名前:デフォルトの名無しさん [2015/12/17(木) 23:55:14.17 ID:SAZ96wkn.net]
- すいません、まったくの初心者なのですが、次のコードでエラーが出てしまいます。
本の解答通りなのですが、なぜなのかご指摘いただけないでしょうか。 public class Main{ public static void main(String[] args){ System.out.println(
- 540 名前:デフォルトの名無しさん mailto:sage [2015/12/17(木) 23:56:33.25 ID:4HwCeBPi.net]
- 途中までしか書いてないから?
- 541 名前:sage [2015/12/17(木) 23:57:04.33 ID:SAZ96wkn.net]
- すいません途切れました。
なんとか解決します。 ありがとうございました。
- 542 名前:デフォルトの名無しさん mailto:sage [2015/12/18(金) 08:59:07.44 ID:gXOWTloZ.net]
- いや駄目だ
解決するまでここに逐一報告すること
- 543 名前:デフォルトの名無しさん [2015/12/18(金) 12:41:33.17 ID:A0wFUrCZ.net]
- でないとハゲるぞ
- 544 名前:デフォルトの名無しさん [2015/12/18(金) 12:42:43.06 ID:A0wFUrCZ.net]
- でないとハゲるぞ
- 545 名前:デフォルトの名無しさん [2015/12/18(金) 12:45:46.61 ID:A0wFUrCZ.net]
- でないとハゲるぞ
- 546 名前:デフォルトの名無しさん [2015/12/18(金) 12:47:50.46 ID:A0wFUrCZ.net]
- でないとハゲるぞ
- 547 名前:デフォルトの名無しさん mailto:sage [2015/12/18(金) 12:59:47.28 ID:A0wFUrCZ.net]
- 鯖のエラーで書き込みがタイムアウトすると思ったらいっぱい書き込まれていた
まるで俺がハゲに対して恨みがある感じになってる
- 548 名前:デフォルトの名無しさん mailto:sage [2015/12/18(金) 14:03:09.61 ID:QnINeceL.net]
- 書き込み失敗しても一度リロードしてみると書き込めてる時もある
- 549 名前:デフォルトの名無しさん mailto:sage [2015/12/18(金) 14:23:26.83 ID:iEqqqYlV.net]
- >>542
2ch荒らしの総本山、K5特定★50 [無断転載禁止]©2ch.net orpheus.2ch.net/test/read.cgi/livejupiter/1450415415/ K5という業者が鯖に負担かけてるらしい
- 550 名前:デフォルトの名無しさん [2015/12/18(金) 14:41:06.55 ID:hQoCI1Ym.net]
- でないとつるつるにハゲるぞ
- 551 名前:デフォルトの名無しさん [2015/12/18(金) 14:42:14.27 ID:hQoCI1Ym.net]
- でないとつるつるにハゲるぞ
- 552 名前:デフォルトの名無しさん [2015/12/18(金) 17:06:23.32 ID:6XPVePxg.net]
- でないとキミの頭はつるつるさ
- 553 名前:デフォルトの名無しさん [2015/12/18(金) 17:06:47.77 ID:6XPVePxg.net]
- でないとキミの頭はつるつるさ
- 554 名前:デフォルトの名無しさん [2015/12/18(金) 23:18:13.38 ID:q36XK/c5.net]
- プログラマはMacを使ってるってマジ?
hayabusa3.2ch.net/test/read.cgi/news/1450395043/
- 555 名前:デフォルトの名無しさん mailto:sage [2015/12/18(金) 23:29:59.04 ID:P0yasGva.net]
- dockerとかはやってるからLinuxだよ
- 556 名前:デフォルトの名無しさん [2015/12/19(土) 03:38:34.73 ID:2UBd/xW7.net]
- sqliteに接続したいのですが、エラーになってしまいます。
ソースコード ideone.com/5It3q1 参照ライブラリー sqlite-jdbc-3.8.11.2.jar エラー内容 java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: person) at mainPackage.MainClass.main(MainClass.java:27) ← stmt = connection.prepareStatement("SELECT * FROM PERSON");の行です。 sqliteのコマンドラインから select * from person すると正常に取得出来ます。 どこが原因でしょうか。
- 557 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 06:33:01.29 ID:kEEo/8GZ.net]
- >>551
試してみようかとしたけど https://paiza.io/projects/tSxYHd4l8FJRup3xlT0Mqg
- 558 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 12:01:43.03 ID:FU6UsUbv.net]
- WindowsのJDK1.8ですが、インストーラでC:\Program Files\Java\jdk1.8.x_xに
配置されたファイルをそのまま他のマシンにコピーして使うことはできますか? Linux用JDKのzip形式のアーカイブって、zipを展開すればそれでインストール できますよね だから、Javaのアプリと必要なJDK一式を一緒に混ぜてtar.gzとかにし、 ユーザ用のディレクトリで展開後、適当に環境変数設定すれば、 そのJDKでJavaアプリを動作させられますよね 対してWindowsのJDKって、.exe形式のインストーラしか無いですよね なのでLinuxとは違い、まずJDKをインストールの後、アプリを配置、 という手順になりますよね よって、JDKをインストールするための権限が必要となってしまいます しかし、その権限が無い状態でもJDK1.8とJavaアプリを動作させたいので 最初に書いた方法でJDKを、管理権限不要なディレクトリに配置できないかと 思っているのですが、そういう使い方はできるのでしょうか 何となく、Windowsがインストーラ形式なのは、Windowsディレクトリ内の コントロールパネルやJRE起動用の設定のためだけ、という気がしてるのですが…
- 559 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 12:31:26.06 ID:RxcFrHzM.net]
- JDKインストール → JDKコピー → JDKアンインストール
コピーしたJDKが動くかどうかって感じで試してみれば?
- 560 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:25:28.58 ID:n1iWLCUz.net]
- >>553
予想だけど環境変数のパスに突っ込めばいいんじゃないの?
- 561 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:57:21.61 ID:tK28wdyT.net]
- レジストリに書き込めば完璧w
- 562 名前:デフォルトの名無しさん [2015/12/19(土) 13:59:36.49 ID:T0IQ8Alq.net]
- >>553
JDKに含まれるJPEG関連などの一部ライブラリがC言語で書かれてるから無理。 というかWindows64ビットJDKは一部ライブラリがない欠陥品。
- 563 名前:デフォルトの名無しさん [2015/12/19(土) 15:02:06.17 ID:qnMVxVos.net]
- eclipseで.classファイルの中のソースが見れるのですが
そこにブレークポイントを置いても止まってくれません ソースが見れるなら.classファイルでもブレークはれば止まると思ってたんですが どういった設定が必要なのでしょうか もしご存知の方がいればご教授お願い致します。
- 564 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 14:38:27.42 ID:Hs3AGw0X.net]
- サーブレットでSQLite使いたいけどdbファイルのパスの指定方法が分かりません(ローカルでは接続できます)
仮にdbファイルをWEB-INF直下に置いた場合は、Drivermanager.getConnection()でどう指定したら良いでしょうか。
- 565 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 03:17:00.52 ID:D9eRUSMN.net]
- ServletContext#getRealPath()で取れると思うが読み取り専用でもなければ分けた方がいいんでないかな
- 566 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 19:25:56.82 ID:6JmEczDa.net]
- >>558
虫のマークで実行してる? JRE のライブラリにブレークポイント打ってるなら、JDK使ってないからとかもあり得る
- 567 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 19:33:14.52 ID:6JmEczDa.net]
- >>553
https://www.whitebyte.info/programming/java/how-to-install-a-portable-jdk-in-windows-without-admin-rights これ読みな
- 568 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 10:01:47.81 ID:fVVuE9y7.net]
- List interfaceについての質問です
docs.oracle.com/javase/jp/7/api/java/util/List.html boolean add(E e) void add(int index, E element) の返り値で、前者はCollection interfaceのためというのはわかりますが 後者をbooleanではなく、voidで実装している利点や合理性はあるのでしょうか? 歴史的なものとかならそれも知りたいです
- 569 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 11:22:12.99 ID:x4y88p/b.net]
- 後者でbooleanが返ると何か嬉しい事があるのか、という観点で見てみるといいのでは?
- 570 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 11:29:00.73 ID:sUZCBNnf.net]
- そもそもadd(E e)の方もvoidでよかったんだよ
結局実装依存で例外投げたり戻り値で返したりと無茶苦茶だからね Javaのコレクション周りはさすがに年季が入ってるのでいろいろ設計ミスもある
- 571 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:18:26.36 ID:r/ugZgu1.net]
- 歴史的背景も何もない、List の場合は返り値が必要ないから void なだけ
だってadd呼んでListの要素を変更しないってケース自体がそもそも無いんだから、 Collection#add と同じ意味の boolean 返すんだとしたら、常に true 返すことになる そんな無駄な返り値必要ない
- 572 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:34:01.58 ID:fVVuE9y7.net]
- >>564-566
やっぱり実装がいまいちなんですかね Collection interfaceとList interfaceを見てみましたが、 List側はvoidでやりたそうには感じました 個人的には関数は値を返してくれるほうが嬉しいんですけど、 副作用目的の関数は戻り値ではなくExceptionで対応するほうが 整理しやすいのかとかいろいろ考えるきっかけになりました ありがとうございました
- 573 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 12:40:37.36 ID:ZolTmMoK.net]
- >>566
いや逆にインデックス付きの方は失敗する可能性があるだろ addやremoveがbooleanを返すのは、 マルチスレッド環境で操作をアトミックにするため ハッシュ表やツリーなどで事前の要素の存在チェックが必要な場合、同時に追加削除をした方が効率が良いため まあ現実には共通の扱いでaddできるListの実装は配列かリンクリストしかないのでaddはvoidだけでよかった
- 574 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:39:03.11 ID:r/ugZgu1.net]
- > いや逆にインデックス付きの方は失敗する可能性があるだろ
その場合は例外投げるから問題ないでしょ 俺は、Collection#add と同じ意味の返り値なら返す意味ないでしょって言ってるだけで かぶりがあって変更なしの場合は例外じゃないが、不正なインデックスは例外ってのは 個人的な感覚では特に問題ないけどなぁ、まぁ人それぞれかもしれんが
- 575 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:45:56.51 ID:r/ugZgu1.net]
- > まあ現実には共通の扱いでaddできるListの実装は配列かリンクリストしかないのでaddはvoidだけでよかった
List だけ見りゃそりゃそうだけど、Collection インターフェースを実装してるから boolean 返り値があるわけで void だけにするには何かしらの工夫が必要 Java の実装がまずいって言うならじゃあどうすれば良かったのかってのを提案しないと意味ないと思うが
- 576 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:01:49.93 ID:bNevXKYI.net]
- 消費者生産者問題についての質問です
このサイトの質問者がしている質問とほぼ同じ質問です このようなプログラムで、producerとconsumerをそれぞれ3個ずつにしたプログラムを作る方法を教えて下さい 初歩的な質問で申し訳ありません detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12139613622
- 577 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:05:33.03 ID:PFbU/TtP.net]
- C# の Delegate.CreateDelegate みたいなことってできない?
Method から Consumer や Supplier が作れたらいいなと
- 578 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:14:36.84 ID:bNevXKYI.net]
- >>572
C#分からないです… とりあえずスレッドを増やすと、同じキューを作ってしまうのでそれぞれが別のキューを作るようにしたいんです producer1が1を生産したら producer2は次に2を生産する、というように
- 579 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:16:08.52 ID:PFbU/TtP.net]
- >>572は>>571に対する回答じゃないから
- 580 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:20:24.68 ID:bNevXKYI.net]
- >>574
間違えましたすみません
- 581 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:18:34.69 ID:r/ugZgu1.net]
- >>571
とりあえずその知恵袋の回答にはバグあるね。 まだ produce してないはずの item を consume してるw
- 582 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:38:53.41 ID:bNevXKYI.net]
- 知恵袋の答えは全てプログラムを書き換えているので、
producerconsumerの構造を変えずに3つにしたプログラムの作り方をききたいです
- 583 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:10:28.82 ID:r/ugZgu1.net]
- >>577
> producerconsumerの構造を変えずに3つにしたプログラムの作り方 言ってる意味が分からん。知恵袋の回答も Producer 3 , Consumer 3 だぞ?
- 584 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:27:06.18 ID:QyczMDc8.net]
- わかりやすく書くと
質問者のコードをそのまま作った解答をつくってよこせ でしょ
- 585 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:34:05.82 ID:r/ugZgu1.net]
- 回答者のスレッドプール使ったやり方は、スレッドプールとかよくわかんないからやめてって事かw
質問者みたいに普通にスレッド使って下さいってことね
- 586 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:37:10.15 ID:r/ugZgu1.net]
- 回答者のコードいじって(多分)まともに動くの作ったけど、これじゃだめってことね
pastebin.com/apfAZQne
- 587 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:44:00.91 ID:r/ugZgu1.net]
- あ、9,10行目は無意味なコード残ってたから消しといてね
static ExecutorService consumerSVC; static ExecutorService producerSVC;
- 588 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 20:29:07.08 ID:4wj+rz5B.net]
- すいませんspinnerを開いたときにスクロール位置をトップにしたいんですがどうしたらいいですか
- 589 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 20:35:04.11 ID:r/ugZgu1.net]
- >>583
FQCNで書いて spinner じゃなんのことかわからん GUIライブラリにもいろいろあるし あと、spinner ってそもそもスクロールするものじゃなくね?
- 590 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:25:45.75 ID:4wj+rz5B.net]
- すいませんandroidのスレと間違えました。
- 591 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 16:15:38.00 ID:egycav5a.net]
- JavaのGUIって簡単なほうなのか難しいほうなのかがいまいちわからん
- 592 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 19:23:24.99 ID:jd1tVj2O.net]
- >>581を理解するのに、conccurentのリファレンス見ながら30分位かかったんですが、仕事でプログラムするなら、1、2分で余裕で実行結果を推測出来て当然なんでしょうか?
|

|