1 名前:デフォルトの名無しさん [2008/01/13(日) 00:25:22 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド110【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1197710566/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
75 名前:てきとう mailto:sage [2008/01/14(月) 14:03:59 ] まちがえたw JTable のメソッドじゃねーやハズカピー JTable tb = new JTable(new DefaultTableModel(3, 3){ boolean isCellEditable(int row, int column){ return (column != 0); } });
76 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:05:16 ] >>74 (思わずカエレ!!と言ってしまいそうになる) それは無名クラスの定義文です。 内部クラス > 無名クラス(途中) ttp://www.javaroad.jp/java_class15.htm >>75 有るにはありますが、挙動に注意です。
77 名前:デフォルトの名無しさん [2008/01/14(月) 14:25:38 ] >>75 様 >>76 様 どうもありがとうございました とても勉強になりました。
78 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:26:56 ] javaのとっかかりで GUIを作りながら勉強できるサイトとかありますか?
79 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:39:59 ] >>78 java.sun.com/docs/books/tutorial/uiswing/index.html 日本語版ってあるんだっけ…?
80 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:44:24 ] 出来れば日本語で ほんとの初心者向けのが助かります
81 名前:デフォルトの名無しさん [2008/01/14(月) 19:15:31 ] 創るJavaじゃね?
82 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:24:31 ] >>81 宣伝乙。どこにGUIの話が載ってるの? book.mycom.co.jp/MYCOM/html/book/978-4-8399-2681-6/index/978-4-8399-2681-6.html
83 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:52:56 ] GUIなら最近java6対応の本が出てたな。
84 名前:デフォルトの名無しさん [2008/01/14(月) 19:58:44 ] NetBeansでつくって学ぶ Java GUI & Webアプリケーションと書いてあるが?
85 名前:デフォルトの名無しさん [2008/01/14(月) 20:24:46 ] 教えて下さい コマンドプロンプトでjava -version 入れたら Error: could not open `C:\Program Files\Java\j2re1.4.2_16\lib\i386\jvm.cfg' こんなエラーが表示されます。 J2SDKを1.4.2.16→1.4.2.10と変えたらこんな事に・・・ どうすればよいのやら・・・
86 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:39:04 ] >>85 たぶん環境変数の問題だと思うけど、 取り敢えずコントロールパネルの中の"Java"を起動してみて 期待する設定になってるか見てみたら?
87 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:44:53 ] というか1.4.2の最新って1.4.2.14くらいじゃなかったけ?
88 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:45:35 ] ああ、バージョンダウンしたのか。
89 名前:デフォルトの名無しさん [2008/01/14(月) 20:57:15 ] >>86 コントロールパネルにJava Plug-in があって それ起動しようとしたらエラー・・・ >>88 バージョンダウンです
90 名前:sage [2008/01/14(月) 21:11:26 ] うぅぅぅ the time zone update file がダウンロードできない(T_T) Welcome xxx | Logout [continue] 先に進まない
91 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:14:05 ] 前のバージョンをアンインストールして再インストールする方をクリーンインストール。 たぶん、ごみが残るからごみは手動で消す。
92 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:14:39 ] >>89
93 名前:デフォルトの名無しさん [2008/01/14(月) 21:57:17 ] >>91 85です。解決しました。 1_4_2_10や1_4_2_16はうまくいかなかったです。 なぜうまくいかないのか今はわかりません。今後調べてみます。 ひとまずアンインストールを行った後、1.5.0_14をインストールし、 ユーザ環境変数のみ PATH C:\Program Files\Java\jdk1.5.0_14\bin に設定して、 javac java -version の確認がとれました。 ありがとうございました。
94 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:04:27 ] java_home設定しといた方が良いよ。
95 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:51:51 ] Stringで受け取った文字列に対しての色変更はどのようにしたら良いのでしょうか?
96 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:56:49 ] >>95 ・Stringには色はありません。 ・標準入出力には色を付けられません。 ・Graphics.setColorを使えばいいと思うよ。 ・何十回も質問を読み直してから来ればいいと思うよ。
97 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 05:06:32 ] なんというおもしろ質問
98 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:24:40 ] >>95 勘で。 pc11.2ch.net/test/read.cgi/tech/1196543694/354
99 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:22:05 ] javaはコンソール制御できないからなぁ。
100 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:24:22 ] そういや一応、Cursesはあるよね。
101 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:28:53 ] エスケープシーケンスでできんじゃね? NT 系のコマンドプロンプトでできなくなったんだっけ?
102 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:59:24 ] できない
103 名前:デフォルトの名無しさん [2008/01/15(火) 09:50:35 ] double/doubleを小数点以下第一位まで表示するにはどのようにすればいいのでしょうか??
104 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 10:25:54 ] formatでいんじゃね
105 名前:デフォルトの名無しさん [2008/01/15(火) 10:35:26 ] www.hcn.zaq.ne.jp/no-ji/game/game.htm ここのシューティングのJAVA版が動かないんですが。どうしたら動きますか?
106 名前:デフォルトの名無しさん [2008/01/15(火) 12:13:48 ] 作った人に聞く
107 名前:デフォルトの名無しさん [2008/01/15(火) 12:53:22 ] MozillaParserを使い始めたんですが クイックスタートに載ってる File parserLibraryFile = new File("./native/bin/MozillaParser" + EnviromentController.getSharedLibraryExtension()); String parseLibrary = parserLibraryFile.getAbsolutePath(); MozillaParser.init(parseLibrary, "C:\\dapper\\mozilla\\dist\\bin"); Document domDocument = MozillaParser.getInstance().parse("<html>Hello world!</html>"); MozillaParser.getInstance().stopRunning(); がうまく動きません Pathなどは通してありMozillaParserそのものは呼び出せますが メソッドが呼び出せません ひょっとして仕様変ってますか
108 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:56:55 ] エラーメッセージは?
109 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:21:59 ] SE 6 で JavaScript 使えるようになったことだし、そろそろ PDA のフルブラウザ程度の 標準 GUI コンポーネント作れよというチラ裏。
110 名前:デフォルトの名無しさん [2008/01/15(火) 13:37:25 ] つJavaFX Mobile
111 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:48:40 ] >>12 NodeListの動作はW3C DOMが決めているものだから、xml4j云々は関係な いでしょ。W3C DOMの仕様だって、IEとMozillaのJavaScript DOMの挙動 を明確化するところから始まったものだし。
112 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:17:41 ] java初めて1ヶ月の初心者です。 エクリプスで普通に実行できるプロジェクトが、DOSからjreで起動しようとするとシンボルが見つかりませんエラーを頻発するのは何が原因と考えられますか? ちなみにjavacをやっても、同じ数だけ、クラスが見つからないよエラーが出ます。
113 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:20:11 ] クラスパス関連
114 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:05:05 ] ttp://www.uploda.net/cgi/uploader2/index.php?file_id=0000048495.txt サンプルみながら弄くってるのですが ボタン押したら終了するようなのって このソースのどこら辺をどう変えたらいいですか
115 名前:デフォルトの名無しさん [2008/01/15(火) 16:10:00 ] >114 jframe.setDefaultCloseOperation(jframe.DO_NOTHING_ON_CLOSE); JavaDoc、JFrameのsetDefaultCloseOperationの項目を嫁
116 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:10:54 ] actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して 終了ボタンなら終了動作をすれ
117 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:17:12 ] >>actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して すんません、どうやって判定するんですか
118 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:17:37 ] ==
119 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:49:14 ] ネットで既にあるアプリケーションのサンプル、ソースを見ると Main.java A.java B.java のようにクラスごとにファイルを分割しているもの 見るのですが、どのように分割したファイルを関連付けすればいいのでしょうか 例えばMenuItem等の基本的機能を実装したMain.javaに、 JTreeを実装したA.java、TextAreaを実装したB.javaを追加するような形です
120 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:52:03 ] 同じパッケージ (同じディレクトリに保存してある) なら何もしなくても使えるだろ。
121 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:57:19 ] すみません、表現がおかしかったですね ・MainでMainメソッド等を作った ・A,BでMainメソッド込みで必要な機能をそれぞれ作った ↑ これをMainに関連付けるにはどうしたらいいのでしょうか
122 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:00:46 ] ↓エスパー求む
123 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:01:32 ] すみませんが、質問です。 intの配列を、リストに変換するライブラリはないでしょうか? commons にありそうな気がするのですが。 Arrays.asList() を使ったのですが、 intの配列だと、配列全体を一要素とするリストができてしまいます。 java.util.Arrays.asList(new int[]{1,2,3}) => (java.util.Arrays$ArrayList<E>) [[I@18f6235] Integerの配列なら、そのままリストに変換されるのですが。 java.util.Arrays.asList(new Integer[]{1,2,3}) => (java.util.Arrays$ArrayList<E>) [1, 2, 3]
124 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:04:21 ] なんか最近質問も回答もひどいな。
125 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:11:56 ] >>123 一発変換じゃないけど、commons lang の Integer[] org.apache.commons.lang.ArrayUtils#toObject(int[]) とかで、いったんInteger[]に変換してからArrays#asList()で変換するとか。
126 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:14:33 ] >>121 「関連付ける」っていう表現がJava歴12年の私によくわからない。 何を心配しているのだ?
127 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:15:42 ] List<Integer> list = new ArrayList<Integer>(); for(int i: array){ list.add(i); } なぜこの程度のコードのために非標準ライブラリを使おうとするんだ?
128 名前:123 mailto:sage [2008/01/15(火) 17:27:31 ] >>125 おお、これでOKです!ありがとうございます。 commons.apache.org/lang/api/org/apache/commons/lang/ArrayUtils.html#toObject (int[]) >>127 まあループをなるべく書かないのがポリシーなのだと思ってください。 LISPで再帰せずにmapを使うようなものです。 commons-langは、まずどんなプロジェクトでも使わないことはないし。
129 名前:123 mailto:sage [2008/01/15(火) 17:39:13 ] 趣味じゃなくて実用の話をすると、これは配列の中身をログに書き出すために、 リストに変換したかったのです。配列#.toString()と違い、List#toString()は 各要素を出力してくれますので。 ロギングのためにわざわざループを書いたり、その後使うあてのない諸々の変 数を宣言したりするのは煩雑ですが、これなら一行ですみます。 log.debug("x = " + Arrays.asList(ArrayUtils.toObject(xarray)));
130 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:41:35 ] それは十分趣味だと思うが。
131 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:51:26 ] >>129 そーゆー用途なら java.util.Arrays#toString(int[]) でも良いのでは? もっとも、1.5以上じゃないと使えないけど。
132 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:05:40 ] final static final static の使い分けがわかりません。 final float TEST = 1.0f; static final float TEST = 1.0f; static TEST = 1.0f; どういう状況・どういう時に使い分けるのですか?
133 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:13:45 ] >>132 メンバ変数の話だとすると、 final 変更できないメンバに付ける。コンストラクタで初期化することはで きるので、あるインスタンス内でのみ有効な実行時定数として使う static final そのクラスの全インスタンスに共通の定数として使う static そのクラスの全インスタンスに共通の変数として使う
134 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:17:52 ] >>133 ありがとうございます。 static final は Cでいうと #define みたいなものと捕らえて大丈夫ということでしょうか?
135 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:23:12 ] >>134 そんな感じですね。 例を思いついたので書いてみる class 人間 { static final int 足の数 = 2; // 足の数は全人類共通 static int 人口; final String 名前; // 名前は一度決めれば変わらない 人間(String n) { 名前 = n; } void 出生() { 人口++; } void 死去() { 人口--; } }
136 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:24:23 ] 定数の特徴がstaticでfinalなんだよ って昔言われたな
137 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:26:21 ] >>135 わかりやすい例で納得できました ありがとうございます
138 名前:123 mailto:sage [2008/01/15(火) 18:36:34 ] >>131 > そーゆー用途なら java.util.Arrays#toString(int[]) でも良いのでは? > もっとも、1.5以上じゃないと使えないけど。 おおお!全然知りませんでした!ありがとうございます。 早速これに乗り換えます。
139 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:41:14 ] >>135 カタワは人間でないt(ry
140 名前:デフォルトの名無しさん [2008/01/15(火) 19:23:05 ] >>139 カタワは基本構造から差し引かれているわけだから2本って定義は間違ってないよ。
141 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:48:07 ] java.nio.channelsのSelector#wakeupについて教えて下さい。 このメソッドはSelector#selectの待ち合わせを解除するものですが、 動かしてみたところ、 Selector#selectで待ち合わせていないときに(複数回)Selector#wakeup を呼び出すと呼ばれた回数だけ次のSelector#selectで待ち合わせをしなくなるように見えますが そういうものですかね?
142 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:05:46 ] >>129 >List#toString()は >各要素を出力してくれますので。 そうとは限らない。おまいは何か勘違いしている。 Listの実装に何を使うかによって違う。
143 名前:デフォルトの名無しさん [2008/01/15(火) 21:16:48 ] import java.util.*; class Super {} class Sub extends Super {} public class Main { static void test1() { List<? extends Super>s = new ArrayList<Sub>(); s.add(new Super()); //あ s.add(new Sub()); //い } static void test2() { List<? super Sub>s = new ArrayList<Super>(); s.add(new Super()); //う s.add(new Sub()); //え } public static void main(String args[]) { test1(); test2(); } } 上記コードの あ・い・う・え すべて「シンボルを見つけられません。」というエラーになるんですが 本には あ・い はエラー、う・え はOKって書いてあるんです。 これて、本が間違ってるんでしょうか?それとも何かコンパイラーの設定とかあるんでしょうか? 本はソフトバンククリエイティブの 「 Java2 Exam 310-055 」で、336ページです。 ここだけがどうしても理解できないので、スッキリしたいです。
144 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 21:32:51 ] ひどいコードだな。
145 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:30:40 ] >>141 java.sun.com/javase/ja/6/docs/ja/api/java/nio/channels/Selector.html#wakeup () >ある選択操作から次の選択操作までの間にこのメソッドを 2 回以上呼び出しても、 >1 回だけ呼び出したときと同じ結果になります。 ってあるから、もしそうだとしたらバグかな? どうでもいいとは思うが
146 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:34:42 ] 漠然とした質問で申し訳ありませんがお聞きします。 eclipseなどだと、ソーエディタの変数名にマウスカーソルを合わせたりすると「型名 変数名 -クラス.メソッド」 という感じで表示されますよね? この文字列ってどうにかして取得できませんか?イメージとしては 元のJavaのソースコードを食わせて、すべての変数に対して「型名 変数名 -クラス.メソッド」 が取得できればいいです。 eclipseはJavaで書かれていると聞いたので、こういったことを処理するクラスがあるのでしょうか?
147 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:39:24 ] >>146 リフレクションAPIを使うといいよ
148 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:40:23 ] Eclipseはすべて自前でやっている Eclipseのプラグインを作ってEclipse(というかJDT)の機能を使うって手もあるけど・・・ そのJavaのソースコードを普通にコンパイルして、実行時にリフレクションで取得する方が簡単と思う たとえばAっていう名前のクラスなら A.class.getDeclaredMethods() とか
149 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:41:14 ] >>146 できねーよ。自分でパーサー組んでコンテキスト分析すれ。
150 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:42:28 ] >>147 早速のご回答ありがとうございます 大変恐縮なのですが、そのAPIはどのパッケージにあるか教えていただけますか?
151 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:44:43 ] おまいら別クラスの任意の位置のローカル変数にどうやってリフレクション使わせる気だ。
152 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:53:16 ] 変数名が要るのか、失敬 それなら、classファイルのデバッグ情報を読む・・・ちょっと手間だな
153 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:35:59 ] >>105 ダブルクリック。
154 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:01:28 ] >>143 本の通りで、コンパイルエラーになるなら本が間違ってる。 もしくは、本の説明が足りない。もしくは、本にとってあなたは想定外の人物。 私の環境だと「え」以外はエラー。
155 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 01:03:42 ] >>143 の疑問は解けないかもしれないが、今回探した中では一番読み応えのあった文章 Javaの理論と実践: Generics、了解! (初級:ただし、JDK 5.0でのgenericの基本に慣れている必要がある) ttp://www.ibm.com/developerworks/jp/java/library/j-jtp01255/
156 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:20:37 ] >>121 Main.java …… static int hogehoge = 1; static A a = new A(); static B b = new B(); …… a.starting(); A.java class A { public void starting() { int i = Main.hogehoge; Main.b.ending(i); …… } } 試せ。適当に書いてみてエラーが出なければ多分正しい
157 名前:デフォルトの名無しさん [2008/01/16(水) 15:01:17 ] Iteratorを使ったループでの同期化について質問させてください。 動画の描画のような、毎秒数十回呼び出されるループ内で、ArrayListをIteratorで回してます。その一方で、別スレッドからこのArrayListに追加するためのメソッドがあります。 (例)-------------- ArrayList<Hoge>() hoge = new ArrayList<Hoge>(); loop(){ // 毎秒数十回呼び出すループ Iterator<Hoge> it = process.iterator(); while(it.hasNext()){ Hoge h = it.next(); if(!h.loop()){ // Hoge内のループがfalseを返したら削除 it.remove(); } } } public void addHoge(Hoge h){ hoge.add(h) } ------------------ こういう場合にIteratorループでConcurrentModificationExceptionが起こらないようにするには、どうすれば良いのでしょうか? synchronized修飾子で囲ってみたり、Collections.synchronizedList使ってみたりと色々試したのですが、どうしてもConcurrentModificationExceptionが起こってしまいます。 大人しくVector + Enumerationを使ったり、for(int i = 0; i < hoge.size(); i++) で回せば解決するのですが、Iteratorでの解決策が無いはずは無いと思うのです・・・。
158 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:15:37 ] loopの中をsynchronized(process)で、 addの中をsynchronized(hoge)で くくる? www.nextindex.net/java/thread/syncblock.html
159 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:17:19 ] CopyOnWriteArrayListを使ってIterator#removeの代わりにList#removeにする・・・とか。
160 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:34:58 ] JAVAを使う職業に転職したいのですがいい本はないでしょうか? 今は会社員ですが、辞める予定ですので、早く覚えたいのです。
161 名前:157 mailto:sage [2008/01/16(水) 16:47:54 ] さっそくのご回答有難うございます。 そしてすいません、4行目の Iterator<Hoge> it = process.iterator(); は、 ↓ Iterator<Hoge> it = hoge.iterator(); の間違いでした。 >> 158さん ありがとうございます。 どちらのメソッドもsynchronizedブロックで括るということですね。 むむむ、しかし試してみたところ、やはりadd後に即、loop内でConcurrentModificationExceptionが起こってしまいました。 ArrayListをiteratorで回してる最中は、追加・削除等の処理は一切行っちゃダメってことなんですかね。何か凄く不便に感じます。 多分、僕が無知なだけなんだろうとは思いますが・・・。 >>159 さん やや!並行処理用のコレクションがあったとは知りませんでした。 パフォーマンスも満足行くものみたいですね。 ありがとうございます、活用してみます。 やはり、並行処理するならば、ArrayListにこだわるのは良くないということなんでしょうかね。 MapにはConcurrentHashMapがあるようですね。以下のサイトを参考にしました。 ttp://www.itarchitect.jp/technology_and_programming/-/24161.html 返答ありがとうございます。
162 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 16:51:04 ] >>157 API を読みましょう。ってことなのでしょうか ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Collections.html
163 名前:デフォルトの名無しさん [2008/01/16(水) 16:57:34 ] >157 List list = new ArrayList() { @Override public Iterator iterator() { ArrayList list = new ArrayList(this); return list.iterator(); } }
164 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:20:23 ] <fmt:bundle> と <fmt:setBundle> って機能まとめて一つで良いよなぁという独り言。
165 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:17:07 ] >>163 it.remove();
166 名前:デフォルトの名無しさん [2008/01/17(木) 09:41:33 ] すいません、Javaを勉強しようと思っているのですが 色々種類がありすぎてどれから始めるのが良いのか分かりません。 おすすめとかありますか? ちなみに、僕のスペックです。 ・経験言語 Perl(4年)/PHP(3年) Ruby(半年)/C(半年) JavaScript(1年)
167 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:54:15 ] Java の色々種類って何だよ 開発環境なら Java SE 6.0 + Eclipse 3 使っとけ。 GUI なら Swing (Java SE 標準) 使っとけ。 Web 系なら Tomcat 使っとけ。 データベースなら PostgreSQL 使っとけ。 i-Appli, ゲームは知らん。
168 名前:デフォルトの名無しさん [2008/01/17(木) 10:40:08 ] >166 得意分野から入るってならばSeasar2あたりでJ2EEをやる Ruby(Rails)やったことあるならば大雑把には感覚つかめる筈 まったく知らない分野に手を伸ばしたいならばSocket通信とSwingあたりがいいかと思われ。 簡単なチャットプログラムあたりを作成するのがちょうどいい
169 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 14:43:05 ] JDK6に含まれている JDBC 4.0 APIには、DataSet<T>やBaseQueryなどが 含まれていないようなのですが、これらは、他のライブラリに入っているのでしょうか? それとも、JDBC 4.0仕様から削除されたのでしょうか?
170 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:27:49 ] リファレンス実装が十分固まらないうちにリリースに間に合わなくなって 1.6 から除外された。 その後は知らん。
171 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:30:36 ] >>167 MySQL勧めとけ internet.watch.impress.co.jp/cda/news/2008/01/17/18139.html
172 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 15:37:09 ] Sun に買われた Cobalt がどうなったか知らんのか。
173 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 16:45:23 ] Stream の close() の仕方について質問です。 以下のようなみたいなコードがあったとき、 FileInputStream fis = new FileInputStream("hoge.txt"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); 今まで以下のように書いていました。 br.close(); isr.close(); fis.close(); ところでピアソンの「プログラミング言語Java 第4版」p.450(20.4 InputStreamReader と OutputStreamReader という節) をみると、以下の記述があります。 >どちらの場合も、変換ストリームをクローズすると、関連付けされているバイトストリームもクローズされます。 >標準ストリームを変換するような場合には、クローズされるのは常に好ましくはないかもしれません。 >したがって、変換ストリームをいつクローズするかは慎重に検討してください。 これをよむと、以下のように isr.close() するだけで fis も close() されるという理解でよいですか? br.close(); isr.close(); 以下のように br.close() だけだと、isr と fis は close() されないですよね。 br.close();
174 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 16:48:59 ] 創るJava って第2版がでるんだな。(2008/1/23)
175 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 17:00:26 ] >>173 br.close()だけでぜんぶクローズされるはず。 手元にソースがなくて確認はしてないけど、ストリームにかぶせるタイ プのストリームはぜんぶclose()で中のストリームのclose()を呼んでい たと思う。