[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 02/26 00:40 / Filesize : 251 KB / Number-of Response : 842
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド121【歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 01:09:54 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド120【歓迎】
pc11.2ch.net/test/read.cgi/tech/1223603727/

次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

331 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 02:28:43 ]
>>329
たぶんその書き方は、Java仮想マシンという仕様を(実質オペコード)、エミュレータとして実装したってことじゃないかと思う。

332 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 02:28:50 ]
>>328
>どうでもいいがなんでシーケンシャルな処理とオブジェクト指向が対比されてんだ

(答) だって人工無脳なんだもん

333 名前:デフォルトの名無しさん [2008/11/26(水) 02:30:34 ]
>>328
あの・・・よく読んでいるようですけど・・・もしあなたの言う「〜とか」を否定すると、Windowsなどで動く全てのGUIアプリを否定することになりますよ?

334 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 03:23:14 ]
>>328
おまえがコンソールアプリしか作ってない理解できないんじゃないのか?
VRAMとか言ってるけど、おまえがGUIアプリを作ってもせいぜいポトペタしかやったことないんだろww

335 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 03:32:51 ]
>>333
ああ、あなたも人口無能でしたか。

336 名前:デフォルトの名無しさん [2008/11/26(水) 03:35:47 ]
人口無能ww

337 名前:デフォルトの名無しさん [2008/11/26(水) 03:37:35 ]
ポトペタがあれば永遠に俺は幸せ!

338 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 04:11:19 ]
ほう

339 名前:デフォルトの名無しさん [2008/11/26(水) 04:20:15 ]
ポトペタのユーザはともかく、ポトペタな開発を実現するツールキットを設計
する人は偉大だと思うな。
その才能を多くの凡庸な開発者達のために役立てているし、つまらん仕事
を最小限の手間暇で片付けられるので大変世の中に貢献している。

なのでかの人工無能くんにはポトペタでとてもマルチスレッドなGUIアプリが
構築できるツールキットを是非開発して欲しいと思う。



340 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 04:34:25 ]
SUNが破産手続き開始の申し立てだそうだ。記念カキコいっとけ。
mamono.2ch.net/test/read.cgi/newsplus/1227609444/

341 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 07:41:44 ]
>>340
SUN は SUN でも microsystems じゃないやつだろ。Second Life のベンチャーじゃん。
まあ Sun micro はいつもリストラ計画だの四半期ベースが改善しただの見てるこっちを
ハラハラさせるニュースが多いことは確かだが。

342 名前:デフォルトの名無しさん [2008/11/26(水) 08:41:13 ]
>>339
それって座標計算とレイアウトなだけじゃないの?
そうするとゲーム開発者は偉大ってことになるし。
sincosとか使ったことないし、tanの2倍角の公式とか知らない口でしょw

343 名前:326 mailto:sage [2008/11/26(水) 08:41:16 ]
>327
俺が通っていた工業高校では、情報技術者試験のアセンブラ科目で使う
CASLを搭載したと仮定しているコンピュータのエミュレータをWindows上で動かしていて、
「仮想計算機のエミュレータ」と呼んでいたので、
実在はしないが仕様は決定されているコンピュータなら、
それをソフトウェアで再現したものはエミュレータと呼べるのかな、
じゃあJVMもエミュレータなのかな、って思ったんです。

>329
おお、ありがとう!
仕様でエミュレータって呼ばれてるんですね。
スッキリしたw

344 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 08:55:47 ]
>>343
ああそれそれ、JVMはCASLと同じ考えでいいんじゃないの。
実際JVM仕様を読んで自分でfile.classを吐き出す簡単な処理系を作れるなら、jrubyとかgrooovy,sclara,javafxとかのマイ言語作ってるのと同じだし、javacだってjvmプラットフォームの1つに過ぎない。
というか、仕様が最低限しかないから簡単だから俺ならJVMで動くCASLかCを作るけどね。

345 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 08:57:09 ]
>>342
お前どっかずれてるわ

346 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 09:17:50 ]
HttpClientで、executeMethodして接続しているところを割り込んで止める方法はないでしょうか?

347 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 10:00:45 ]
>>345
というか、おまえならどうやって作るの?

348 名前:デフォルトの名無しさん [2008/11/26(水) 10:02:54 ]
リストやツリーのデータ構造を自作できない奴に何言っても無駄無駄

349 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 10:17:39 ]
だなw



350 名前:デフォルトの名無しさん [2008/11/26(水) 10:31:15 ]
>>343
頑張って大学に入って頑張って勉強してくださいなw

351 名前:デフォルトの名無しさん [2008/11/26(水) 12:26:24 ]
public static void main(String args[]){
int a = 4, b = 7;
int i, j;
for(i = 0; i < a; i++){
if (i%2 == 0){
for(j = 0; j < b; j++){
System.out.print("*");
}
}
else {
for(j = 0; j < b; j++){
System.out.print("=");
}
}
if (i%2 == 1){
System.out.println();
}
}
}

*******=======
*******=======
と表示したいのですが、最後のif文で改行処理の判断をするのではなく、これを表示処理の判定に含めたいです。
どなたかやり方を教えて下さい。出来れば簡単な方法でお願いします。


352 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:03:48 ]
フレームワークとしてマルチスレッドなGUIを構築できたら

開発環境の仕事はソースの生成アシストとナビゲーションだろ
どっちにしても難しいなこれは

俺にはむりむり

353 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:15:03 ]
>>342
ポトペタを実現するのに必要な事として座標計算とレイアウトしか
想像出来ないおまいさんはマジ幸せ者だよ。ホント。

354 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:15:30 ]
そんなデカイのを作る必要はないな。既に有用なIDEがいくらでもある。
もっと違った視点で見てみると面白い活用法が浮かぶんじゃないか?

355 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:24:36 ]
>>354
いや、俺が欲しいのはポトペタなんだが。
是非とてもマルチスレッドなGUIアプリを開発できるツールキットを開発してくれ。
それが出来ればIDEなんてEclipseのプラグインとしてサクッとすればいい。
おまいさんには簡単だろ?

356 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:36:41 ]
ていか、もう出来てるんだが?
それも座標計算とレイアウトだけで。

マルチスレッドなGUIアプリを開発できるツールキットってのは何を言ってるか意味不明だけど、
君が欲しい機能や仕様をまとめてくれればたやすいんじゃないの?

357 名前:デフォルトの名無しさん [2008/11/26(水) 13:42:42 ]
たぶんなんだけど、マルチスレッドとスレッドセーフがよく分かってないんじゃないの?オジサンだからw

358 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:57:28 ]
>>356
ああ、おまいさんのいうポトペタとはドラッグアンドドロップでGUIをデザイン
出来る事だけを言うわけですね。わかります。
ポトペタなめんなよw

あとマルチスレッドなGUIツールキットの仕様については人工無能君に聞いてくれ。
元々彼がSwingその他を馬鹿にするところから始まったネタだから。

359 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:04:40 ]
ネタなのにあえて釣られることはない



360 名前:デフォルトの名無しさん [2008/11/26(水) 14:12:08 ]
Java終了のお知らせ
SUNが破産手続き開始の申し立て
mamono.2ch.net/test/read.cgi/newsplus/1227609444/

361 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:17:42 ]
>>360
>>340で既出

362 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:48:57 ]
まあ、たしかにJava2Dでやっちゃえばなんでもありになるわな
あとはイベントどうするかってのとスレッド(協調動作)にそいつがどれほど慣れてるかだし
実際問題Java2DはGUIのときに出てくるだけで、イベントとかスレッドはGUI関係ないしなぁ

363 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:49:41 ]
Vector vlistA
├String aID
└list[]
├String kekka1
└String kekka2

指定したaIDのlist[]の中身を追加、削除したいのですが、addやremoveでは無理でした。
追加、削除方法を教えてください。


364 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:57:57 ]
ArrayList vlistA
├String aID
└ArrayList list
├String kekka1
└String kekka2

にすれべおk


365 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 15:02:29 ]
>>364
図がずれてました。
Vector vlistA
├String aID
└list[]
   ├String kekka1
   └String kekka2
list[]は仕様上、配列のままにしておきたいんです。


366 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 15:04:19 ]
そんな仕様は糞だ

367 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 16:35:15 ]
>>362
その通りなんだけど、個人で作って利用するプログラムと他人様が利用して
作成物の保守もするツールキットとでは設計の基準が異なるんだよね。
後者ではちゃんと利用者像を想定して、落としどころを見つける必要がある。
そのためには機能の絞り込みも必要で、何でもありにはならないんだ。

368 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 17:13:32 ]
>>365
list[]を追加、削除のたびにnewしてやればいいんじゃね?

もしくは、削除ならforで回して詰める、追加もforで回して隙間あけて入れる。
追加する余裕が配列になければnewしてやる

369 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 17:24:12 ]
>>351
簡単にということなので、変数一個減らして、for文一個減らしてif文全部無くしてみた。
import java.util.*;
class Nichan {
public static void main(String[] args) {
int a = 4, b = 7;
char[] out = new char[b*2];
Arrays.fill(out,0,b,'*');
Arrays.fill(out,b,b+b,'=');
for(int i=0; i<a/2;i++){
System.out.println(String.valueOf(out));
}
}

}



370 名前:351 mailto:sage [2008/11/26(水) 18:02:51 ]
>>369
回答ありがとうございます。
なるべく原形とどめつつ最後のif文だけ何とか出来ませんかね?
注文多くてごめんなさい。

371 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 18:16:17 ]
>>370
if (i%2 == 1){ /* hogehoge */ } ってことは、
if (i%2 == 0){} else { /* hogehoge */ } ってことでしょう。

for(j = 0; j < b; j++){
 System.out.print("=");
}
System.out.println();


372 名前:370 mailto:sage [2008/11/26(水) 19:03:13 ]
>>371
なるほど・・・
ありがとうございました。
いい勉強になりましたm( _ _ )m

373 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:47:45 ]
>>318,323
もう解決してるかもしれないけれど、
携帯電話・PHS 関連なら、MIDP スレも参考になる情報もあるかも。
WILLCOM の電話機なら、MIDP 2.0 に準拠しているようだから。

CLDC+MIDP+携帯電話用Javaスレッド part 8
pc11.2ch.net/test/read.cgi/tech/1206017034/l50

374 名前:319 mailto:sage [2008/11/26(水) 20:24:06 ]
>>320,325,330
ありがとうございました。
if(c[i]=='+'|c[i]=='-'|c[i]=='*'|c[i]=='/')
こうしなくちゃいけなかったんですね。
ようやく分かりました。
String型のメソッドは覚えておいたほうがよさそうですね。
よく読んでおきます。
splitを使ったやり方も、試して見たいと思います。
ご丁寧にありがとうございました。

375 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 20:54:59 ]
C出身なら if (stg.charAt(i)=='+' || stg.charAt(i)=='-') ですかね。
ジャバ出身者でtoCharArrayを使うのはなかなかいません。

376 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:21:36 ]
すいません、JAVA3Dと
acerola3d.sourceforge.jp/
上URLのacerola3Dを使ってappletに表示させたいのですが行き詰ってしまいまして。
どなたかご教授願えませんでしょうか?

377 名前:318 mailto:sage [2008/11/26(水) 21:28:43 ]
>>373
おお、専用スレがあったんですね。
thxです!

378 名前:デフォルトの名無しさん [2008/11/26(水) 21:55:53 ]
Javaってあれだね?最初、Javaからやったらわけわかんなかったけど
色々言語やったら好きになった。便利だね。Write anywhere, Run once.だっけ?

379 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:57:33 ]
正しくは write once test anywhere



380 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:07:47 ]

ttp://xy.yu.to/ (ここは本来のサイトではないが)
この荒れまくりカオス絵チャのminiっていう部屋の
秘密スペース(枠外)への書き込みってどうやれば
できるようになるのか解析して教えろ。

あと、1人の防衛プログラマーのクリアツールが強すぎて、
荒しプログラマーがことごとく全員返り討ちになってるから
オマエラが面白くしてみろ。

ゲハハハごめんね

381 名前:デフォルトの名無しさん [2008/11/26(水) 22:14:32 ]
日頃からコード書いていて処理に慣れてる人はメソッド名が長い!冗長だ!とか文句言ったりしなくなりますよww
さらに演算子オーバーロードー!!プロパティ!!とかも「はぁ?」って感じですかね?(笑)

382 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:29:32 ]
>>374
「|」じゃない。「||」だ。
まぁ、どうせ>>374のままだとエラーが出るからすぐわかるはずだけど。

383 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:32:50 ]
サーブレットで文字化けみたいになるんですが
すべて?ってのは文字化けではないですよね?
コンテンツタイプの設定でEUC_JPやShift_JISなどに変更しても変わりません
どうしたら直るか教えてもらえませんか?


384 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:53:09 ]
>>382
>>374 は確かに良い書き方ではないけど、
エラーはでないぞ。
| と || の違いを分かってないのか?


385 名前:319 mailto:sage [2008/11/26(水) 22:55:03 ]
>>375,382
なるほど〜
わざわざchar型に入れ替えるより
charAtを使った方がすっきりしますね。
一応やってみて『|』でもうまくいったのですが
この場合『||』の方がいいんですかね?


386 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:03:34 ]
>>384
げ、論理演算て整数にしか定義されないと思い込んでたよ。
型違反になると思ってた。

387 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:08:39 ]
>>386
ま、そんなもんでしょ。
ANSI Cを骨の隋までしゃぶってるわけじゃないし、そこまで細かく知ってる人いないし。
いちおう | は全部評価するってこと。

388 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:12:15 ]
charAtだと余計なメソッド呼び出しの分コストがあるかな。
ストリームだと[]で受けるから、Stringにしないでそのままst[k]とかすることはある。


389 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:26:12 ]
Javaって|はビット演算子じゃないの?



390 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:41:43 ]
>>389
| はビット単位の整数演算子でもあるけど、論理演算子でもある。

391 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:41:55 ]
>>389
そう思って>>382を書いたら恥かいた(^^;
&, |, ^ については、整数と真偽値の両方について定義されてて、整数のときはビット演算子、真偽値のときは論理演算子として振る舞う。
ただし、演算子の左右が両方とも整数か、両方とも真偽値でなければならなくて、例えば、1|trueはコンパイルエラー。
言語仕様の15.22参照。

392 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:56:22 ]
>>390,391
thx
何か微妙な仕様だなw

そこらへんは、C/C++から派生した言語として統一しておいてほしいね。
無駄に悩みそうだしw

393 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:10:30 ]
どう考えても妥当な仕様だと思うが。
これ以外のどれでもいまいちな仕様になるだろ。


394 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:46:37 ]
複数の意味を持たすメリットが微妙に見える
C/C++と同じでいいじゃん

395 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:43:36 ]
javaでは真偽値と整数は非可換なんで&や|での扱いをC/C++と同じにするのは妥当とはいえない

396 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:56:44 ]
いやいや、整数のみ(ビット演算のみ)に意味を持たせればいいじゃん、
と言う意味なのだが。

C/C++でも通常boolで|や&は使わないし。
それがイコールC/C++と同じにすることになると思うけど。

あれ?俺何か勘違いしてる?

397 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:11:13 ]
論理演算子として、

|…or。左辺も右辺も必ず評価。
||…or。左辺が真なら右辺は評価しない。
&…and。左辺も右辺も必ず評価。
&&…and。左辺が偽なら右辺は評価しない。

だと思ったけど、違った?

398 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:31:29 ]
|| や && はあるのに ^^ はないのは如何に

399 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:37:44 ]
つか、当たり前だった



400 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:38:08 ]
>>398
右も左も計算しないと結果が出ないんだから、^ と等価になるだけじゃね?

401 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 03:42:55 ]
>>398
ワロス
booleanでの&と&&の使い方・・・ ようするに>>397みたいなのなかなか参考書に書いてないか、気づきにくいよね

402 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 06:41:36 ]
if (t == null || t.length() == 0) ...
みたいな書き方をしたとき、
(t == null) が true なら t.length() が呼ばれないので
NullPointerException が発生しない。

foo() と bar() が確実に1回ずつ呼ばれないと困るとき
if (foo() | bar()) ...
みたいに書ける。


403 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 07:39:47 ]
このスレがはじめて役に立った

404 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:02:53 ]
>>402
>foo() と bar() が確実に1回ずつ呼ばれないと困るとき
>if (foo() | bar()) ...
>みたいに書ける。
タイプミスなのか意図的なのかが分かり難いからあまり使って欲しく無いな

405 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 11:36:28 ]
System.setIn(),setOut()などで入出力を変更したとします。
その後、元々の標準入力・出力を取得することはできますでしょうか?
単純に別に元々のものを持っておけばいいのですが、気になったので分かる方お願いします。

406 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:40:27 ]
携帯でプログラミングできますか

407 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 13:07:02 ]
>>406
おすすめしないができる。

408 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 13:43:51 ]
>>407
ありがとうございます
タイピングが遅いとかですかね


409 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:25:20 ]
>>305
スコープの問題は?
init メソッドの中で宣言されてるZukeiに
paintからアクセスしようとしてるからダメなんじゃねーすか?
initメソッドの外にの外にZukei[] z;って書いたらよいとおもわれ〜。

Zukei[] z;
init(){

}

>>316
うそつけ。



410 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:48:25 ]
javaで作ったプログラム(SQLサーバとやりとりして出力があるなら出力する)を3分起きに実行させ続けたいのですが
何を使ったらいいでしょう?スレッド?は違いますよね・・・

411 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:00:54 ]
cronとかタスクスケジューラとかそういう話?

412 名前:410 mailto:sage [2008/11/27(木) 16:04:08 ]
>>411
いや、javaのプログラム内で繰り返したいです
昔ちょっとやってたんですけど、HDDクラッシュでデータがなくて・・・

413 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:10:15 ]
スレッドをまわしっぱなしにしてsleepで(180)とかにすればいいのかな?

414 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:15:19 ]
>>413
sleep はミリ秒だぞ

415 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:16:13 ]
タイマーでもいけるんじゃない。このあたりで。
java.util.timer
javax.swing.Timer
java.util.concurrent.ScheduledExecutorService


416 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:24:23 ]
>>414
そうだった、180000だな、ありがと

417 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:39:57 ]
javaにはfork()は無いの?

418 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:19:05 ]
Tomcatユーザメーリングリストに参加
www.jajakarta.org/tomcat/faq/tomcatuser.html)したくても参加できないのですが、
どうすればよいでしょうか?

419 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:25:53 ]
TimerTask使うのがらくなんじゃね?



420 名前:デフォルトの名無しさん [2008/11/27(木) 17:30:37 ]
ある関数 List<String> hoge(List<String> list); を開発しています。
hoge() には、String を要素とする List が渡されてきます。
このとき、List が保持している String は重複しているかしていないか、わかりません。

この関数の中で、重複している要素は削除して、リストを返したいです。
(Set を返却値としたかったが、呼び出し元が List を要求していて、そこは修正できない)

そこで以下のようなプログラムを書きました。

List<String> hoge(List<String> list) {
  Set<String> set = new HashSet<String>(list);
  List<String> resultList = new ArrayList<String>(set);
  return resultList;
}

このように一度 Set に入れなおすことで重複を自動的に削除し、
List に変換しています。

○質問:
Set や ArrayList に入れなおすとき、中の要素は
コピーされて渡されるのか、参照渡しになるのでしょうか?

HashSet や ArrayList のコンストラクタのソースを見ると、中で
AbstractCollection#addAll(Collection) が呼ばれているようです。
その中では、渡された Collection を Iterator で回して
得られた要素を add しているので、参照渡しにしていると考えました。

hoge() 関数には大量(10万単位)の文字列が渡ってくるので、できれば
OutOfMemory を起こしたくないため、参照渡しになってほしいです。

421 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:43:41 ]
>>420
オブジェクトを == で比較してテストすればいいじゃない。


422 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:57:29 ]
>>420
中の要素は、コピーされようがコピーされまいが参照渡し。

423 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:00:04 ]
>>422
Javaには参照渡しはない。

424 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:00:56 ]
そして議論は質問と関係ない方向へ、というわけですね

425 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 19:36:33 ]
private なコンストラクタしかないシングルトンがコピーできたらコレクションは最強だな

426 名前:デフォルトの名無しさん [2008/11/27(木) 19:56:12 ]
俺、病気で高校中退して、25でJavaプログラマになれたんだけど、
当然、大学とかいってないから、予備知識なんてなにもない。

このスレ見るたびに、すごい専門的なこと書く人がたくさんいて、すごい自信なくす。。

個人的には、業務に間に合うように一生懸命勉強してるつもりなんだけど。

いつか、だめになるんじゃないかととても不安。

427 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 20:03:36 ]
大学の4年より、実務の半年のほうがよっぽど濃いかもよ?
濃いの解釈はまかせる

428 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 20:06:02 ]
今情報系の大学院2年だけど
学部時代で授業でやるのなんてほんの一部のプログラミング知識だけだよ
Cの基本的なことだけやって終わり
あとは自分で覚えてくだけだから、>>426より大学生の方がよっぽどレベル低いよ
ここで回答してる人たちは本当にすごい人だなと思う

429 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 20:09:20 ]
このスレってそんなにレベル高いか?



430 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 20:10:22 ]
実務では、ちゃんとやろうとしても
コピペ坊の華麗な手さばきにはついていけません

431 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 20:12:20 ]
さらに、野生の勘が閃く削除坊の使い手が現れると
プロジェクトは終焉を迎えます。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef