【初心者】Java質問・相談スレッド121【歓迎】at TECH
【初心者】Java質問・相談スレッド121【歓迎】 - 暇つぶし2ch369:デフォルトの名無しさん
08/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
08/11/26 18:02:51
>>369
回答ありがとうございます。
なるべく原形とどめつつ最後のif文だけ何とか出来ませんかね?
注文多くてごめんなさい。

371:デフォルトの名無しさん
08/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
08/11/26 19:03:13
>>371
なるほど・・・
ありがとうございました。
いい勉強になりましたm( _ _ )m

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

CLDC+MIDP+携帯電話用Javaスレッド part 8
スレリンク(tech板)l50

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

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

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

377:318
08/11/26 21:28:43
>>373
おお、専用スレがあったんですね。
thxです!

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

379:デフォルトの名無しさん
08/11/26 21:57:33
正しくは write once test anywhere

380:デフォルトの名無しさん
08/11/26 22:07:47

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

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

ゲハハハごめんね

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

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

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


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


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


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

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

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


389:デフォルトの名無しさん
08/11/26 23:26:12
Javaって|はビット演算子じゃないの?

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

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

392:デフォルトの名無しさん
08/11/26 23:56:22
>>390,391
thx
何か微妙な仕様だなw

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

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


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

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

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

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

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

397:デフォルトの名無しさん
08/11/27 02:11:13
論理演算子として、

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

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

398:デフォルトの名無しさん
08/11/27 02:31:29
|| や && はあるのに ^^ はないのは如何に

399:デフォルトの名無しさん
08/11/27 02:37:44
つか、当たり前だった

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

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

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

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


403:デフォルトの名無しさん
08/11/27 07:39:47
このスレがはじめて役に立った

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

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

406:デフォルトの名無しさん
08/11/27 12:40:27
携帯でプログラミングできますか

407:デフォルトの名無しさん
08/11/27 13:07:02
>>406
おすすめしないができる。

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


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

Zukei[] z;
init(){

}

>>316
うそつけ。

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

411:デフォルトの名無しさん
08/11/27 16:00:54
cronとかタスクスケジューラとかそういう話?

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

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

414:デフォルトの名無しさん
08/11/27 16:15:19
>>413
sleep はミリ秒だぞ

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


416:デフォルトの名無しさん
08/11/27 16:24:23
>>414
そうだった、180000だな、ありがと

417:デフォルトの名無しさん
08/11/27 16:39:57
javaにはfork()は無いの?

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

419:デフォルトの名無しさん
08/11/27 17:25:53
TimerTask使うのがらくなんじゃね?

420:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/27 17:43:41
>>420
オブジェクトを == で比較してテストすればいいじゃない。


422:デフォルトの名無しさん
08/11/27 17:57:29
>>420
中の要素は、コピーされようがコピーされまいが参照渡し。

423:デフォルトの名無しさん
08/11/27 18:00:04
>>422
Javaには参照渡しはない。

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

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

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

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

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

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

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

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

429:デフォルトの名無しさん
08/11/27 20:09:20
このスレってそんなにレベル高いか?

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

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

432:デフォルトの名無しさん
08/11/27 20:23:33
大学で勉強するのは、研究対象として定量的に評価できるもの。
実務で必要とされるであろうものとは、方向性が異なる。
それでも、それで論文みたいなものを書くすごい人とかいるけど

433:デフォルトの名無しさん
08/11/27 20:35:46
>>428
しょぼい大学だったからじゃないの~?

434:デフォルトの名無しさん
08/11/27 20:38:07
全く経験のない人はなぜか特別視するけど,
実際プログラミングの勉強なんかExcel覚えるのと変わらん

435:デフォルトの名無しさん
08/11/27 20:43:39
そろそろマ板へ移動しよう

436:デフォルトの名無しさん
08/11/27 20:48:57
>>433
学歴コンプか?
大学なんて入試の難易度と授業の内容に差なんかないぞ

437:デフォルトの名無しさん
08/11/27 20:58:02
>>426
業務系のプログラマならそこそこの腕で食っていけるんじゃないかと思う

客観的な評価なんてここじゃできんから
周りのプログラマと比べて、自分より上な人と、下な人の数で判断するしかないんかな

後はプログラムを楽しいと思えてれば、楽しんで仕事してお金貰えるなんてハッピーって感じで生きていけばいいさ

438:デフォルトの名無しさん
08/11/27 21:02:05
TreeSet<Object> tree = new TreeSet<Object>();
tree.add( /* 何か色々と追加 */ );
HashSet<Object> hash = new HashSet<Object>(tree);
assert tree.size() == hash.size();


これで AssertionError が出てくるんですが……なぜだか誰か教えていただけませんか?

439:デフォルトの名無しさん
08/11/27 21:03:52
ってごめん! いきなりわかったっ orz
ありがとう~(´;ω;`)ノシ

440:hitto
08/11/27 21:35:42
開発環境: Java , Struts

JSPにおいて
<input name=sex_kbn value=1 checked>男
<input name=sex_kbn value=2>女

このようなチェックのつけ方は学んだのですが、

前画面から送られてきたsex_kbnの値が1の場合は男に、2の場合は女にあらかじめチェックを付けて、
画面を表示するとなると方法がわかりません。
教えていただけるとありがたいです。
よろしくお願いします。



441:デフォルトの名無しさん
08/11/27 21:37:17
>>434
日本語でおk

Excel覚えるって何?Excelの存在を覚えるって事かな?


442:デフォルトの名無しさん
08/11/27 21:37:41
>>440
マルチ乙

443:デフォルトの名無しさん
08/11/27 22:09:13
>>441
最近こういうあおりも、もう面白くないんだよね。

おまえの方が日本語やり直しのようだなw

444:デフォルトの名無しさん
08/11/27 23:12:00

すみませんが教えてください。

Class<T>のgetSimpleNameというメソッドを使用していますが
これがExceptionを発生します。

同じソースでも違う環境ではエラーにならないので
環境の問題だと思うのですが
何かヒントだけでもいただけないでしょうか?

445:デフォルトの名無しさん
08/11/27 23:33:36
ゲーム製作版なんてあったんだね。知らなかった。

446:デフォルトの名無しさん
08/11/28 00:00:51
>>444
エラーになる環境のJDKのバージョンと、
getSimpleName() 使うと Exception 出す Class<T> の生成方法やら toString() の出力結果ぷりーず

447:デフォルトの名無しさん
08/11/28 00:40:28
>>444
生の java.lang.Exception を throw するって結構特殊な気がするので、その辺から原因を絞り込めるんじゃないだろうか?

448:デフォルトの名無しさん
08/11/28 00:51:19
>>444はマルチポストだよ。

仕事でやってるからエラーは貼れないそうで。

仕事でやってるならにちゃんねる頼るのはどうかなー。

449:デフォルトの名無しさん
08/11/28 01:02:32
>>444
環境依存はJavaの問題じゃないってのが答え
それと、おまえはもう来るな

450:デフォルトの名無しさん
08/11/28 09:52:32
コレクションで、リスト構造は持つが重複を許さないようにしたい場合、リストとは別に含まれているかのチェックのためにセットを持たせたりしますか?
List#containsで判断するのはいかにもコストが高そうでいやなんです。

451:デフォルトの名無しさん
08/11/28 10:14:22
最初から java.util.Set じゃいかんのか?

452:デフォルトの名無しさん
08/11/28 10:43:56
>>450
あなたの言う「リスト構造」って何のために使うの?

453:デフォルトの名無しさん
08/11/28 11:01:15
LinkedHashSet じゃダメなのか?

454:デフォルトの名無しさん
08/11/28 11:17:35
>>453
探していたものはまさにそれです。ありがとうございました。
APIドキュメント読み足りませんでした・・

>>452
基本的にはSetとして使うのですが、加えた順序が欲しくなったんです。
具体的にいいますと、プロクシの収集を行っていたのですが、ページ中に上の方が新しいものがあったためです。
それが登録された時間までプロクシのオブジェクトに加え、Comparetorで比較というのもありかもしれませんが、何か他に方法がないかと気になったので質問させていただきました。

455:デフォルトの名無しさん
08/11/28 11:52:31
URLリンク(rg550.hp.infoseek.co.jp)

2次元画像のパターンマッチングをしているのですが、上のプログラムで
マッチングの閾値の設定がどう行われているのかよくわかりません。

また閾値を低くするにはどのようにすればいいのでしょうか。


どなたかご教授お願いします。

456:デフォルトの名無しさん
08/11/28 12:58:15
閾値ってか白黒画像だろう扱ってるのは
カラー画像は読み込み時に toBinaryImageで白黒化されている

457:デフォルトの名無しさん
08/11/28 13:01:01
Tomcatユーザメーリングリストに参加
URLリンク(www.jajakarta.org))したくても参加できないのですが、
どうすればよいでしょうか?

tomcatスレがないのでここで質問させていただきました。
(正確にはありますが、関係ないようだったので)

458:455
08/11/28 13:18:42
>>456
ではどのようにパターンを読んで抜き出しているのでしょうか?

閾値の設定は

459:455
08/11/28 13:20:31
>>458
間違って一度書き込んでしまいました^^;

ではどうやってマッチングの閾値を設定するプログラムを作ればいいのでしょうか?
今のやつではターゲットと全く同じパターンしか抜き出すことができなくて・・・。

460:デフォルトの名無しさん
08/11/28 14:59:52
swingでJFileChooserを使ってファイルの保存ダイアログを表示させています。
そこで「拡張子の指定がなかった場合は自動的に.txtを付与する」という機能を付けたいのですが
どういったメソッドが用意されているでしょうか

461:デフォルトの名無しさん
08/11/28 15:07:42
getSelectedFileでもオーバーライドすれば?

462:デフォルトの名無しさん
08/11/28 22:54:59
最近本を買って勉強を始めたのですが、本のサンプルソースを丸写ししてもコンパイルにエラーが出てしまいます。
始めたばかりでよく分からないのですが、

import java.util.Scanner;

int x = stdIn.nextInt();
がダメなようです。

いきなり変数にキーボードから代入するという初めのほうで止まってしまって困っています。
全部のソースを上げたいのですが、ロダとかいろいろ使い方が分からないので抜粋しました。

ググっても知識がなさ過ぎて、ますます分からなくなる始末でした。
もしよければどこが悪いか教えていただけると幸いです。

463:デフォルトの名無しさん
08/11/28 22:57:16
>>462
javaのインストールとかパスとかは通したの?

464:デフォルトの名無しさん
08/11/28 23:06:38
エクリプスいれてやってみ

465:デフォルトの名無しさん
08/11/28 23:06:39
javaのバージョンは何使ってます?
1.5くらいからだっけ?.Scanner

466:デフォルトの名無しさん
08/11/28 23:08:00
>>462
hello worldは実行できたの?

467:デフォルトの名無しさん
08/11/28 23:09:27
scannerはJDK 5.0から。

468:デフォルトの名無しさん
08/11/28 23:09:54
みんな親切だなwこんな教えて君以下のカス相手に

469:デフォルトの名無しさん
08/11/28 23:21:08
今度から君の質問にも答えてあげるから今回はひがむな、教えて君

470:462
08/11/28 23:29:14
hello worldはできました。
どうやらバージョンが悪かったようです。
確認したら C:\j2sdk1.4.2_18 となっていたので、新しいの入れないとダメみたいですね。

みなさん、こんな初歩の初歩の質問に答えていただきありがとうございました。

471:デフォルトの名無しさん
08/11/28 23:33:02
for(int a=0; a<12; a++){
これのa++で1足すって事ですよね?
2づつ足したい場合は如何すれば良いんですか?

472:デフォルトの名無しさん
08/11/28 23:36:14
a+=2

473:デフォルトの名無しさん
08/11/28 23:39:10
>>472
有難うございます

474:デフォルトの名無しさん
08/11/29 00:14:48
>455
どっかで見たことあると思ったら宿題スレか

475:デフォルトの名無しさん
08/11/29 02:22:30
>>455
見た感じ、半数以上の"1"(黒?)のドットが一致すればヒットしそうだが。

476:デフォルトの名無しさん
08/11/29 03:53:17
ResultSet の getString と getNString はどう違うんですか?
NCHAR型 読み込むときに getString 使ってると何か問題起きるとか?

477:デフォルトの名無しさん
08/11/29 06:44:36
TreeMap<Integer, Integer> treemap = new TreeMap<Integer, Integer>();
for(~){
treemap.put(keyl, val);
}
int j = treemap.size();
int[] order = new int[j];
for (Map.Entry<Integer, Integer> in : treemap.entrySet()) {
order[--j] = in.getValue();
System.out.println("j:"+j);
System.out.println("Key:" + in.getKey());
System.out.println("Val:" + order[j]);
}
このようにtereemapの要素を配列に降順にいれようとしたのですが、treemapの要素がマイナスのとき
それがサイズとしてカウントされませんでした。
例: 1,6,33,7,-1,-9 のときのサイズは4つ
これは何故こうなるのでしょうか?

というかそもそもこれよりも簡単綺麗に降順にして配列にいれる方法ありましたら教えてください

478:デフォルトの名無しさん
08/11/29 09:57:10
>>477

>というかそもそもこれよりも簡単綺麗に降順にして配列にいれる方法ありましたら教えてください

降順にするならComparatorを実装したクラス一個作ってそれを使ってtreemapを
コンストラクトした上で
treemap.values().toArray()で配列を取り出すとかすればいけそうな気はする


479:デフォルトの名無しさん
08/11/29 15:03:16
>>478
ありがとうございます
今試しにやってみたところtreemapの精度が正確ではないのか
ソートがところどころ順番がおかしくなっていました

2つの要素i,jがありそれぞれをセットとして、iで降順にソートし、その順番でjを配列に格納するにはどうしたらいいのでしょうか?
i , j
4 , 43
675, 23
262, 5

675, 23
262, 5
4 , 43
とソートしたいと思っています

int [][]ar = new int[64][2]; //無駄な配列ができますが、ループが終わるまで要素数がわからないので・・・
int j;
for(int i =0;i<64;i++){
if(iがある条件なら){
j= getKey(~);
}
ar[i][0] = j;
ar[i][1] = i;
}
そしてこのarをar[i][0]の降順にソート
int ar2 = new int[ar.length];
for(int i=0; i<ar.length;i++){
ar2[i] = ar[i][1];
}
return ar2;

480:デフォルトの名無しさん
08/11/29 15:26:07
>treemapの精度が正確ではないのか
うけたw

481:デフォルトの名無しさん
08/11/29 16:46:47
>>479
どこから突っ込めばいいんだ・・・

482:デフォルトの名無しさん
08/11/29 17:33:21
>>479
やっつけで作ってみたけど、やりたいのはこゆこと?
import java.util.*;
public class Test{
public static void main(String args[]){
TreeMap<Integer, Integer> treemap = new TreeMap<Integer, Integer>(new TestCmp());
treemap.put(Integer.valueOf(4),Integer.valueOf(43));
treemap.put(Integer.valueOf(675),Integer.valueOf(23));
treemap.put(Integer.valueOf(262),Integer.valueOf(5));
Object[] keys = treemap.keySet().toArray();
Object[][] result = new Object[keys.length][2];
int i=0;
for(Object key:keys){
result[i][0]=key;
result[i][1]=treemap.get(key);
System.out.println("key="+result[i][0]+":val="+result[i][1]);
i++;
}
}
}
class TestCmp implements Comparator{
public int compare(Object i1, Object i2){
if((Integer)i1<(Integer)i2){return 1;}
if((Integer)i1>(Integer)i2){return -1;}
return 0;
}
public boolean equals(Object o){
if(o.equals(this)){return true;}
return false;
}
}

483:デフォルトの名無しさん
08/11/29 17:45:56
Comparatorを書かなくても元々キーの昇順にソートするComparatorを持っているからそれを逆にすればいい。
TreeMap<Integer, Integer> treemap = new TreeMap<Integer, Integer>();
treemap.put(4 , 43);
treemap.put(675 , 23);
treemap.put(262 , 5);

TreeMap<Integer, Integer> reversemap = new TreeMap<Integer, Integer>(Collections.reverseOrder(treemap.comparator()));
reversemap.putAll(treemap);

System.out.println(treemap);
System.out.println(reversemap);
配列に代入するところまでは書かない。

484:デフォルトの名無しさん
08/11/29 17:49:26
進捗バーについての質問です。ご教授ください。

for文で約30レコードのデータをオラクルから持ってきていていまして、
そのデータのロードがあまりにも遅いために進捗バーを設定したんですけど、
for文内でsetValue()で値を随時セットしているようにしても、バーは正しく動作せず、
パッと突然0%から100%に変わってしまいます。どうやらfor文の中で値を設定しても
バーの表示が変わるのはfor文を抜けた直後なのが原因だそうですが、
だとすれば、一体どのようにすれば進捗バーはちゃんと動作してくれるのでしょうか?
Eclipseを利用して画面を作成しています。

485:デフォルトの名無しさん
08/11/29 17:49:58
treemapが最初にありきの場合なので、
最初から逆順ソートのComparatorを持つTreeMapを作って、
それにputしていくのならこれは関係ないね。

486:デフォルトの名無しさん
08/11/29 17:55:26
>>484
バーが正しく動作しないのではなくバーを正しく動作させていないのでは
ここらへんを参考に
URLリンク(java.sun.com)

487:デフォルトの名無しさん
08/11/29 19:24:40
JNI使って、
int[] を返す native な関数をつくり、
DLLを C/C++ で実装し、
malloc とかしてメモリ確保してそのポインタをして返しやったりした場合、

Java 側ではガベージコレクションされなくなるんでしょうか?
(new したものしかガベージコレクション対象にならない?)

また、free するような関数も DLL で実装して、
int[] (jintarray になるのかな?) を渡して
開放とかってできるんでしょうか?

DLL で画像処理させたい(MMXとかを使う)ので、
メモリアライメントがとれてる配列を使いたいので、、、

スレ違いかもしれませんが、よろしくお願いします。

488:デフォルトの名無しさん
08/11/29 20:36:14
Serializableで、プリミティブ基本型と配列型が自動で直列化されるということは、
もし全てのクラスでSerializableを実装していると
cloneみたく自分でコピーのコード書かなくてもデープコピーになるってことでしょうか?

489:デフォルトの名無しさん
08/11/29 21:07:17
StringのindexOfメソッドの引数は何故charではなくintなのでしょうか?

490:デフォルトの名無しさん
08/11/29 21:10:16
>>489
charだろ

491:デフォルトの名無しさん
08/11/29 21:22:12
>>487
とりあえずJNIスレはこの板にあるのでそちらで聞いた方が良いだろう、
という事と、JNIに準じたコードを素で実装するよりSWIGを利用した方が
色々と楽が出来ると思います。
それこそガベージコレクタ周りもサポートありますし。

492:デフォルトの名無しさん
08/11/29 21:48:50
わからないからってすぐすれ違いにするなよ

493:デフォルトの名無しさん
08/11/29 22:10:41
>>487
malloc で確保したメモリを返しても int[] にはならんよ。

1.4以降の NewDirectByteBuffer 使うとか?
スレリンク(tech板:587-596番) あたりに出てるけど
ネイティブ側で確保したメモリは、JVMのガベコレは解放してくれないので
自前で解放する必要があるみたいね。

494:デフォルトの名無しさん
08/11/29 22:11:15
いや、そういうわけじゃないんだけどね。
普通はByteBuffer.allocateDirectをつかう。
この関数は、要望が多かったから、君がやりたいようなことをそのままJVMでサポートした関数だから。
これも使いたくないって言うなら、ちゃんとAPIドキュメント(JNI)を読むこったw

495:デフォルトの名無しさん
08/11/29 22:15:38
>>492
分かったら、ちゃんと仏様って呼ぶんだぞ

496:487
08/11/29 22:32:12
>>491
ありがとうございます。ただ、色々と複雑な画像処理をするので、
自分で細かくカスタマイズできるレベルが希望なんです。

>>493
うおー、勉強になりました。
ちょっとこれでやってみます。ありがとうございます。

497:デフォルトの名無しさん
08/11/29 22:37:24
APIも読んでない野郎はカス

498:デフォルトの名無しさん
08/11/29 22:42:36
JavaってIO関連のAPIの頭の中の整理がいまいちつかないんだけど
俺の頭が悪いのか、皆そうなのか・・・

なんどやってもだめ。すぐ忘れる。

499:デフォルトの名無しさん
08/11/29 22:44:19
こんなやつ>>492に親切に答えてやるな。
どうせAPIも読まない独学だし、こういうカスが調子に乗ったらどうすんの?
こういうのがそのうち祟り神(荒らし)になっちゃんだしな・・


500:デフォルトの名無しさん
08/11/29 22:46:08
>>498
そのうち慣れるよ

俺も昔はインプットストリームだバッファーなんたらだって頭がおかしくなりそうだったが
最近は見慣れたし、1度書いたコードをコピペしてシャキーンと直せば解決したりもする

501:デフォルトの名無しさん
08/11/29 22:58:47
シャキーンもなにも、JNIスレも探してないしすぐ発狂するし、こういう奴は見込みないよ。やめとけ、やめとけ。

502:デフォルトの名無しさん
08/11/29 23:00:27
>>500
ていうか、おまえは人様が作ったパッケージを使ってるだけだろ?
自分で作ったこともないクセに偉そうにするな。おっさんw

503:デフォルトの名無しさん
08/11/29 23:04:24
>>498
ここはおまえの日記帳じゃないからとっとと消えろw

504:デフォルトの名無しさん
08/11/29 23:10:15
>>502
人様が作ったから頭にはいらねーんだよボケが

自分で作ったらいくらなんでも覚えとるわい!

しかし、IDついてないのにみんなよく特定できるな

505:デフォルトの名無しさん
08/11/29 23:15:31
ソースにはIDあるよ

506:デフォルトの名無しさん
08/11/29 23:20:23
>>504
雑魚w

507:デフォルトの名無しさん
08/11/29 23:21:53
>>505
まじか!

俺なんて、自分が書き込んだIDもわからんぜよ

508:デフォルトの名無しさん
08/11/29 23:45:47
>>482-483
ありがとうございます
無事実現したいことができました

509:498
08/11/30 00:20:36
>>500
ありがとう。わけわからんくなるよね?本当に。

>>502
市ね。ごみ屑。

510:デフォルトの名無しさん
08/11/30 00:23:47
コンストラクタの処理を途中で数秒間止めてから
その後コンストラクタの続きの処理を動かすにはどうすればいいでしょうか?
public コンストラクタ(){
System.out.println("1");
ここで数秒処理を止める
System.out.println("2");
}
このような処理にしたいのですが

511:デフォルトの名無しさん
08/11/30 01:06:50
eclipseで動かしてるプログラムなんですが下記のエラーが出ます。
データを読み取って新たにファイルを作り出すプログラムなのですが・・・
何が原因でしょうか?

java.lang.IntrnalError: fillbuf
at org.apache.crimson.parser.InputEntity.parsedContent(InputEntity.java:545)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1871)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1824)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1824)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1824)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1552)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:534)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:318)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:287)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:650)

512:デフォルトの名無しさん
08/11/30 01:27:40
>>511
多分、eclipse ではなくプログラムの方に問題がある感じだね。

513:デフォルトの名無しさん
08/11/30 09:16:51
ランダムにリンクが飛ぶスクリプトを拾ったんですが、
新ウィンドウでリンクを開く場合はどうしたらいいでしょうか。
アドレスのあとにtarget="_blank"と入れてもだめでした・・・。


<form>
<input type=button onClick="jump()" value="ランダムリンク">
</form>

<script>
url = new Array();

/* リンク先のURLを好きなだけ記述 */
url[0] = "test0.html";
url[1] = "test1.html";


function jump() {
p = Math.round(Math.random() * (url.length - 1));
parent.top.document.location = url[p];
}
</script>

514:デフォルトの名無しさん
08/11/30 09:30:01
>>513
それJavaScriptじゃ。。。
該当スレで聞いて下さい

515:デフォルトの名無しさん
08/11/30 09:32:08
すれ違いでしたか、すみませんでした。

516:デフォルトの名無しさん
08/11/30 12:22:00
>>509
スレが汚れるだけだからこういうの止めてくれないか?

517:デフォルトの名無しさん
08/11/30 16:21:25
汚れるといってもあなたの陰金には負けます

518:デフォルトの名無しさん
08/11/30 17:13:56
Unix環境などX Windowがない環境でグラフィック処理を行うと
エラーになるため、以下の環境変数を指定して実行すると正常に動作するというのを見つけました。
java -Djava.awt.headless=true hogehoge

そこで質問させてください。
awtの処理でOSに依存するネイティブな処理が走るけど、
グラフィックをサポートしていないOSではエラーとなるため
上記の設定が必要だと思ってます。
では、上記設定を行うとネイティブで行ってた処理を誰が行ってくれるのでしょうか?
Java側にネイティブのグラフィック処理に変わる実装があり、
そちらで処理してくれるのでしょうか?
それでしたら、そもそもネイティブな処理を呼び出す必要がないですよね?
java.awt.headless=true を指定すると
正常に処理される内部のメカニズムを教えてくださいm(__)m

519:デフォルトの名無しさん
08/11/30 18:04:54
内部の実装に興味持つならJAVAやる意味はないな。
SUNの方針だと、一度ソフト上で実装(レファレンス実装)してからshippingするからなんかあるんじゃないか?
しかしもともとハードであるものをソフトでやる(エミュレーション)だから速度は遅くても、一応どこでも動くってこと。


520:デフォルトの名無しさん
08/11/30 18:13:08
URLリンク(java.sun.com)

521:デフォルトの名無しさん
08/11/30 19:37:07
すみません。自分自身の限界が来たので質問させてください。
Javaで非常にシンプルなボタンの作成をしてみました。
なぜだか、5番目のボタンだけキャプションが表示されません。
環境はWin+eclipseです。

トラブルシュート、ログはたくさん見たのでその他のなにか考えなければならないヒントなどいただけると
た す か り ま す

public class Test {
public void method(){
int i;
Button h[]=new Button [9];
int dx[]={1,2,3,4,5,6,7,8,9};
int dy[]={1,1,1,1,1,1,1,1,1};
String st[]={"aa","ii","uu","ee","oo","か","き","く","け"};

Display display = new Display();
Shell shell=new Shell(display);
shell.open();

for(i=0; i<9; i++){
h[i]=new Button(shell,SWT.BORDER);
h[i].setBounds(dx[i]*50,dy[i]*30,50,30);
if(i!=4){h[i].setText(st[i]);}}
while(!shell.isDisposed()){if(!display.readAndDispatch()){display.sleep();}}
display.dispose();}
public static void main(String[] args){
Test test = new Test();
test.method();}}


522:デフォルトの名無しさん
08/11/30 19:40:31
>>521
追加です。

これは、問題があったコードを非常にシンプルにしたもので、
元のコードは1000行位あるものです。

特段お金儲け関係ではないので(ただの勉強)必死でいつまで、とかの要望はありませんが、
あまりにもシンプルすぎて調べようも無くなったのでお力拝借したいと。

ちなみにC# のスレに誤爆&非礼をわびておきました。


よろしくお願いします。
#てか、どこに問題があるんだろ。Javaのバージョンかなぁ。

523:デフォルトの名無しさん
08/11/30 19:45:42
をっと。利用しているのはSWTです。以下importを

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;



524:デフォルトの名無しさん
08/11/30 19:52:26
>>521
> if(i!=4){h[i].setText(st[i]);}
これじゃね?

525:デフォルトの名無しさん
08/11/30 21:32:11
>>524
www

526:デフォルトの名無しさん
08/11/30 21:56:05
>>524
激しくわろたw
自分自身の限界が来たって大げさ過ぎw

527:デフォルトの名無しさん
08/11/30 21:59:28
こんな時代もあったよね

と懐かしい気持ちになりました

528:デフォルトの名無しさん
08/12/01 01:11:18
>>486
ありがとうございます。
どうやらswingWorkerを使用する必要があるそうです。

ここでもうひとつ疑問なんですが、swingWorker<T, V>の、
<>の中身は一体なにを表しているのでしょうか。
swingWorker以外にもどこかで見たことがあるんですけど・・・。

529:デフォルトの名無しさん
08/12/01 03:17:25
「Java ジェネリックス」で調べてみて下さい。JDK5からの新文法です。

530:デフォルトの名無しさん
08/12/01 09:58:16
再帰呼び出しで
static int f(int n)
if n==0
return 1
else
return n*f(n-1)
というのを作ってn=3のとき最後の
returnに1、2,3と返すと思うんですけど
2や3はf(2)やf(1)の値がコンピュータに記憶されてるの?

531:デフォルトの名無しさん
08/12/01 12:34:42
俺のコンピュータは意地でも改行しないつもりかwww.... ort

final Display display = new Display();
final Shell shell = new Shell(display);
String separator = System.getProperty("line.separator");
shell.open();

Text t = new Text(shell, SWT.BORDER);
t.setBounds(10, 10, 100, 100);
t.append("Hello world\n" + separator + '\n');
t.append("Hello world\n" + separator + '\n');


532:デフォルトの名無しさん
08/12/01 13:36:37
質問です。
StringクラスのreplaceAll()メソッドに関してなんですが、
正規表現で、特定の文字集合にマッチした場合、
マッチした文字の後ろに特殊な記号を加えたいのです。
replaceAll(pattern, "特殊な記号");
とすると、元の文字を完全に消してしまうので
これはどのようにすればいいのでしょうか?

具体的には
replaceAll("[abcd]","特殊な記号")

文字列が、"apple"だった場合
"a特殊な記号pple"
となるようにしたいのです。


533:デフォルトの名無しさん
08/12/01 13:38:12
replaceAll("([abcd])", "\\1特殊な記号");

534:デフォルトの名無しさん
08/12/01 14:10:36
正規表現はどこに行けばマスターできますか?

535:デフォルトの名無しさん
08/12/01 14:17:36
JDK5.0のWindows版しか使えない状態なのですが、Windowsサービスとして
起動しているアプリケーションに、外部からスレッドダンプを取得する
方法はあるでしょうか。以下の方法までは思いついたのですが、いずれも
トレードオフが現在取れない状態になってしまっています。

1. jstack を使う
  → JDK5.0 では、Linux 版しか無い様でした。

2. jmxremote オプションを付けて jconsole でアタッチ
  → 取得できるのですが、jconsole の UI の仕様上、全部のスレッドダンプを
    取りづらい(左のスレッドを選ぶとその情報が取れる)ので、一度に特定
    プロセスのダンプが取れる方法を探しています。

3. StackTrace と言うアプリケーションを使う
  → adaptj と言う会社の StackTrace を使うと、まさに希望したものが取れるの
    ですが、実行したい環境がインターネットに繋がらない環境であるため、
    使用できないでいます。

できる範囲は、VM の起動引数に変更を加えるまでは可能です。

536:デフォルトの名無しさん
08/12/01 14:21:23
ありません。

537:デフォルトの名無しさん
08/12/01 14:33:21
VMの起動引数を変えれるんなら、メインクラスを変えられるということだ
自前のメインクラスから専用のスレッドを起動しておき、
何かのトリガに反応して Thread#getAllStackTraces() を出力するようにしておけばいいのではないか

538:デフォルトの名無しさん
08/12/01 14:48:08
>>536
そうですか...Linuxだと簡単なのに意外に苦戦して参っています。

>>537
ありがとうございます。
Thread#getAllStackTraces を出力する案は、
別途サーバに手を入れてしまうのが許される場合の案として
次善策にしていました。
この場合はどうせ手が入るからってことで、
サーバアプリなのでそのまま口を設けて出力する案で検討していま�

539:デフォルトの名無しさん
08/12/01 14:49:51
いまどきLinuxはねーよw

540:デフォルトの名無しさん
08/12/01 15:31:49
linuxが許されるのは年金もらうまでだよね

541:デフォルトの名無しさん
08/12/01 15:58:42
なら、おまえらはなに使ってんだよ?

542:デフォルトの名無しさん
08/12/01 16:17:43
もちろんWindows

543:デフォルトの名無しさん
08/12/01 16:33:03
>>534
URLリンク(www.hellohiro.com)

544:デフォルトの名無しさん
08/12/01 16:38:18
そのサイト、おおお!~ましたね!っていうのがイヤだ

545:デフォルトの名無しさん
08/12/01 18:06:01
>>544
てか、
Java初心者向けサイトのほとんどがそんな感じじゃね?

546:デフォルトの名無しさん
08/12/01 18:15:56
念願の、Genericとアノテーションとenumに対応したEffective Java第2版が
出たそうですが、おぬしらの中の読んだ方で、感想はいかがですかな?
前書きに書いてある通りの内容ですかな?

すでに第1版をenumあたりまで読んでいるのじゃが、
これは第2版に鞍替えして読み直したほうがよろしいかな?

547:デフォルトの名無しさん
08/12/01 18:45:16
>>545
そんなバナナ

548:デフォルトの名無しさん
08/12/01 20:14:44
struts2って結構使われてるんでしょうか?
今、一番安定しているフレームワークって何?

549:デフォルトの名無しさん
08/12/01 21:17:35
ところでおまいらEclipseとか使いこなせてるの?
おれは全然わかんねぇ、普通にプロジェクト作ってコード書いて実行ならできるんだが
全然使いこなしてる感じがしない、というかしてないが。
開発環境って多機能すぎる

550:デフォルトの名無しさん
08/12/01 21:22:04
お前らSE、PG??????
やっていけてんの??????

551:デフォルトの名無しさん
08/12/01 22:19:57
俺は>>550が一番心配だ。

552:デフォルトの名無しさん
08/12/01 22:20:01
>>546
すれ違い?

553:デフォルトの名無しさん
08/12/01 23:23:34
>>535
とにかく Ctrl+Break を送ればスレッドダンプするらしいので、Win32 SDK の GenerateConsoleCtrlEvent 関数
で CTRL_BREAK_EVENT を送ればいいはず。
ただしサービスとして起動している java プログラムの標準出力に出ちゃうから、標準出力をファイルか何かに
リダイレクトする必要がある。 
ここまで書いたけど、そこまでするなら JDK6 にしてもらえるように説得したほうが楽そうだな。

554:デフォルトの名無しさん
08/12/01 23:51:37
式言語の意義とは何なんでしょうか?
seacer2の勉強してたらOGNLという言語が出てきました。
調べてみるとJavaEEに出てくるEL式などの仲間で式言語というらしいのですが、
文法見ても目的が理解できません。
web開発において式言語を使う意味というのは
JSPでアクションやサーブレットから受け取ったオブジェクトの情報を出力しやすくするため
に限ったことですか?

555:デフォルトの名無しさん
08/12/01 23:51:48
以下のオブジェクトをシリアライズしてネットワークで他のパソコンに転送、計算を行い結果を返送させるプログラムを作成しています。
public class Element implements Serializable
{
double start;
double end;
int cut;
double d;
int sigma;
int mode;
}

556:555
08/12/01 23:54:35
続き
送信メソッド
try {
sock = new Socket(host, Integer.parseInt(port));
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(sock.getOutputStream());
out.writeObject(element);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
finally
{
try {
out.close();
sock.close();
} catch (Exception e) {
e.printStackTrace();
}

557:555
08/12/01 23:58:02
以下のメソッドで受信を行っているのですが、EOFExceptionが発生してしまいます。
理由がさっぱりわからず困っています。どのようにすればよいのでしょうか。
try
{
ois = new ObjectInputStream(sock.getInputStream());
if(ois.readObject() instanceof Element) //計算する要素を受け取った場合
{
Element element = (Element)ois.readObject();
element.apply(simu.getRects());
Receive.this.simu.calc(); //計算
}

}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if(ois != null)
ois.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

558:デフォルトの名無しさん
08/12/02 00:02:21
ここ

if(ois.readObject() instanceof Element) //計算する要素を受け取った場合

559:デフォルトの名無しさん
08/12/02 00:03:04
>>555
ois.readObject() instanceof Element の行で
オブジェクトを読み込んでるのに
その下の行でさらに読み込もうとしてるから

560:デフォルトの名無しさん
08/12/02 00:12:18
public static final Object CONS=new Object();
でオブジェクトのインスタンスを定数のように使いたいのですが、
直列化するとインスタンスのメモリアドレスが変わってしまい
if (arg==CONS);で比較しても上手くいきません。
古いjdkのためenumを使えずどうすれば良いでしょうか。


561:デフォルトの名無しさん
08/12/02 00:24:45
>>560
enumが欲しいならEffective Javaを読んでenumを実装する

562:555
08/12/02 00:26:58
>>558
>>559
出来ました、有難うございます。

563:デフォルトの名無しさん
08/12/02 00:31:48
>>561
その教科書は持ってないんですけど、enumなんてどうやれば実装できるんですか!

564:デフォルトの名無しさん
08/12/02 00:32:48
うざいなぁ

565:デフォルトの名無しさん
08/12/02 00:37:15
Enumでなくてもフィールドがオブジェクトで定数(final)で一意であればいいので
例えばStringでやってみようかと思ってるのですが難しいです(;ω;)

566:デフォルトの名無しさん
08/12/02 00:50:22
>>560
readResolve を実装しろ

567:546
08/12/02 02:05:41
>>552
なぜスレ違いなのじゃ?

Eclipseの話をするほうがよっぽどスレ違いではないかい?

うーむ、Effective Java第2版を実際に読んでみた者は
まだこのスレに現れないか。

568:546
08/12/02 02:08:03
>>563
Effective Java第一版に実装する方法が載っているようじゃ。
Type Safe enumでもググって見るとよいぞ。Eclipseのプラグインでも
そのようなものが存在するのじゃ。

569:デフォルトの名無しさん
08/12/02 02:10:06
読んでる最中。Genericsの境界ワイルドカードは説明読んでもさっぱりだ。
<T extends Comparable<? super T>>って何ぞ……。

570:デフォルトの名無しさん
08/12/02 02:15:37
Tもしくはそのスーパークラスと比較可能なT
Integer (Comparable<Integer>) とか
java.sql.Date (Comparable<java.util.Date>) が該当する

571:デフォルトの名無しさん
08/12/02 02:24:39
<? super T>って
if(foo instanceof Bar){
//hoge
}

みたいな条件分岐がいらなくなるくらいしか思いつかないんだが・・・


572:569
08/12/02 02:25:37
うーん、わかるようなわからんような。
interface I {}
class A implements I, Comparable<I> {...}
class B implements I, Comparable<I> {...}
static <T extends Comparalbe<? super T>> int compare1(T a, T b) {...}
static <T extends Comparalbe<T>> int compare2(T a, T b) {...}
void func() {
A a = new A();
B b = new B();
compare1(a, b); // OK
compare2(a, b); // NG
}
既存の定義はなんとか読み解けても、1から自分で定義できなさそーな気が……。

573:デフォルトの名無しさん
08/12/02 02:35:19
>>567
注文して、到着待ち。俺の国に届くのはいつの日だよorz

>>571
実行時じゃなくてコンパイル時に怒られるから良いんじゃないのかな。
Generics使い始めると意地でもキャストを無くしたくなる。

574:デフォルトの名無しさん
08/12/02 12:16:35
>>570
片方がsqlでもう片方がutilであるぞ

575:デフォルトの名無しさん
08/12/02 12:20:06
>>572
ドキュメントをよく読むんだ。入門サイトもどこかにある。
Effective Javaを読む前に先にGenerics入門らしきサイトを先に
読んだほうがいいのでは。
たしかに、けっこう混乱するとは思う。
自分で作るの大変だ

576:デフォルトの名無しさん
08/12/02 17:22:44
>>566
あの~
意味が分からないですけど

577:デフォルトの名無しさん
08/12/02 17:34:05
アプレットで六角形を描きたいのですが、drawPolygonメソッドがint型の配列しか引数に
取れないようなのでどうすればいいかわかりません。以下のコードをどう修正したらいいですか
import java.applet.*;
import java.awt.*;

public class hexagon extends Applet {
public void paint(Graphics g) {
double sqr3 = Math.sqrt(3.0);
double[] xPoints = {5, 15, 20, 15, 5, 0};
double[] yPoints = {0, 0, (5*sqr3), (10*sqr3), (10*sqr3), (5*sqr3)};
int nPoints = 6;
g.drawPolygon(xPoints, yPoints, nPoints);
}
}

578:デフォルトの名無しさん
08/12/02 18:43:10
>>577
intにキャストすれば?

579:デフォルトの名無しさん
08/12/02 18:44:54
>>578
同一インスタンスを返すようにreadResolve()をオーバーライドすればいいということかと。
readResolve()を知らないなら、直列化について詳しく調べるといい。


580:デフォルトの名無しさん
08/12/02 19:07:11
直列化のsrcとdstでインスタンスのアドレスが違うからstatic final intみたな定数として機能してないってことが問題なんですけど?
何が問題が良く分かってないじゃないですか。それにインタフェイスではそのAPIはありませんよ。
直列化するときは普通はクラスのほう使いますけど。

581:デフォルトの名無しさん
08/12/02 19:17:10
なんでintしか扱えないんだろうか

582:デフォルトの名無しさん
08/12/02 19:36:09
>>580
readResolve()はANY-ACCESS-MODIFIERなメソッドだけど、
デフォルトではprivateなメソッドだから、javadocにも載ってないし、
オーバーライドしろといわれてもピンとこないのは、非常によく分かる。

ただ、直列化を使用するなら、直列化の仕様ぐらい調べようぜ。

それより、"クラスのほう"って何?




583:デフォルトの名無しさん
08/12/02 20:04:29
当然class ObjectInputStreamですよ。
intなのは、swichの実装が32ビットだと容易だからです。
それと仕様は読んでるんですけど、参照をフィールド定数として使いたいことと直列化は関係ありません。
enumが使えるJDKならいいんでしょうが、なんか上手い方法はないでしょうか・・・・

584:デフォルトの名無しさん
08/12/02 20:16:50
>>580
URLリンク(java.sun.com)

> 代替オブジェクトのインスタンスをストリームから読み込むときに
> そのオブジェクトを指定する必要のあるクラスでは、
> 次のシグニチャーを正確に指定して、この特別なメソッドを実装する必要があります。
>
> ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;

1.1 だと使えないんだっけ?

585:デフォルトの名無しさん
08/12/02 20:22:14
readResolveが一つの解決法なのは分かりますが、あなた、ちょっとしつこい

586:デフォルトの名無しさん
08/12/02 20:23:31
もうジャバはめんどい!
C#とマイクロソフトだけで俺はしあわせ!

587:デフォルトの名無しさん
08/12/02 20:23:53
>>585
readResolve での解決では、何か不満が?

588:デフォルトの名無しさん
08/12/02 20:27:48
>>583
何この場か

589:デフォルトの名無しさん
08/12/02 20:29:09
>>585
>readResolveが一つの解決法なのは分かりますが、あなた、ちょっとしつこい
いや、別人ですから。

590:デフォルトの名無しさん
08/12/02 20:32:05
ここまで全部俺の書き込み

591:デフォルトの名無しさん
08/12/02 20:37:57
どれがだれのだれへの発言なのか

592:デフォルトの名無しさん
08/12/02 20:41:19
>>それにインタフェイスではそのAPIはありませんよ。
>>直列化するときは普通はクラスのほう使いますけど。
横道にそれるけど、インタフェイスとクラスの理解があやふやじゃないか。
普通はクラスのほうを直列化って、インタフェイスも直列化可能と?

593:デフォルトの名無しさん
08/12/02 20:46:13
>>569
ワイルドカードは、
引数に対してコバリアントにしたい場合は、super を使い、
返り値に対してコバリアントにしたい場合は、extends を使う。

例えば、Comparator<T> は、T が出てくるのが、
int compare(T, T)
しかないので、extends のワイルドカードを使っても全くの無意味。

逆に、Iterator<T> は、T が出てくるのが
T next()
しかないので、super のワイルドカードを使っても全くの無意味。

ところで、Effective Java 第2版の和訳はどうなん?
第1版は和訳が酷いとかいってた人が居たけど

594:デフォルトの名無しさん
08/12/02 20:50:23
javaでmysqlサーバに現在時刻を取得するためにクエリを発行して取得した結果が
2008-12-02 20:47:03.0
というように最後に余計な物がついてきます。これなんとかならないでしょうか?
String query = "select now();";

try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url, user, pass);

stmt = con.createStatement();
rs = stmt.executeQuery(query);
rs.next();
TimeStamp = rs.getString("now()");
System.out.println(TimeStamp);
}catch(Exception e){
System.err.println(e);
}

こんな感じのソースです
2008-12-02 20:47:03
これだけあればいいです


595:デフォルトの名無しさん
08/12/02 20:51:16
5.0じゃないならreadResolveしかないだろ。なんでゴネてんだ?

596:デフォルトの名無しさん
08/12/02 21:10:50
Swingで質問です…
JScrollPaneのViewportViewにJTreeを二つ設置したJPanelを指定したのですが
スクロールペインの中央にJTreeが並んでしまって困ってます
BoxLayoutでJPanelにJTreeを設置するとテキストがまともに表示されない(後半が途切れる)ので
GridBagLayoutで白紙のパネルをJTreeの下に設置し、JTreeを左上になんとか表示してます
こんな無理矢理な方法を使わず、素直にJTreeを二つスクロールペインの左上に設置する方法は無いでしょうか?
何方かご教授下さい…

597:デフォルトの名無しさん
08/12/02 21:13:56
>>594
なんで getTimestamp しないの?

java.text.SimpleDateFormat あたりを参照するよろし。

598:デフォルトの名無しさん
08/12/02 21:34:12
鯖のシステム時刻とクライアントのシステム時刻が一致している
保証はあるけ?

599:デフォルトの名無しさん
08/12/02 21:35:47
>>597
>>598
ありがとうございます。結論から言うと、substring(0,19)で解決しました
しかしなんで末尾にへんな.0がつくのかちょっと謎です

600:デフォルトの名無しさん
08/12/02 21:37:54
>>598
なるほどね。

ならそもそも SQL 上で整形して出力すべきだね。

601:デフォルトの名無しさん
08/12/02 21:39:37
ん?と思ったけど Timestamp で取得してりゃ問題ないんじゃないの?
unix epoch time からの時間な訳だし…。

まぁどうでもいいや。ガンガってw

602:デフォルトの名無しさん
08/12/02 21:44:44
>>567
eclipse万歳~
プランクトン万歳~


603:デフォルトの名無しさん
08/12/02 21:53:54
eclipseなんて使ってると馬鹿になるぞ
ってのが口癖のEmacs使いの先輩がRailsを理解できない
規約言う前に原理を説明しろとか言って怒鳴る
頭固くなってんのはどっちなんだろう

604:デフォルトの名無しさん
08/12/02 21:55:52
よく考えたら直列化で定数フィールドのアドレスが変わっても、equalsで解決できそうなのでそっちでやってみることにします。
実際はEnmuMapみたいなことが出来れば良いのですが、マップを使った配列アクセスみたいですけど
m.put(ONE,val); m.put(TWO,val2);
したあとに直列化しても
m.get(ONE).equals(val)==true であることが条件です。こういうのは出来ないのでしょうか。

605:デフォルトの名無しさん
08/12/02 22:11:54
>>603
こんなところで先輩の悪口いってるおまえも相当アレだけどなw

606:デフォルトの名無しさん
08/12/02 22:46:37
>>596
sage忘れた上にSwingスレがありました…本当に申し訳ないです

607:デフォルトの名無しさん
08/12/02 23:01:39
>>603
「IDE? クソ使い難いエディタ付いてるだけのキッチンシンクが使いもんに
なるわけねーだろ、JK」と思ってたら、リファクタリング機能のあまりの
素晴しさにEclipseに転んだEmacs歴15年の俺が通りますよ、と。

まぁ、ScalaはScala Pluginが現状役に立たないので、scala-mode.el一択
なんだがな……。

608:デフォルトの名無しさん
08/12/02 23:24:18
emacsってそんなにいいんですか?ただのエディタじゃないですか。
しかも正規表現を使った検索・置換があれば最低現十分なのに、カスタマイズが多すぎて不要な機能が多いし。
実際私が論文書くときや役所に提出する書類なんかもms word 95と表機能程度で十分ですし、一体全体エディッタやIDEに何を望んでるんですか?といってみるテストw

609:デフォルトの名無しさん
08/12/02 23:29:42
>>603
IDE でしか coding したことないと馬鹿になるというか発想が
狭くなるという意味では先輩に合意する。けど、IDE を使って
も良いと思うし、単純ではない GUI とかは IDE 使わない方が
時間の無駄だと思う。

610:デフォルトの名無しさん
08/12/02 23:43:13
エディタだとしてもコードのコピペで済むので、時間の無駄って感覚がわかんないんですけど。
GUIとか外見のテンプレートがあってあとはロジック書くだけってならJavaじゃなくても今の時代ならWebでいいかと。
Javaの良いところはコテコテの言語サポートや特定用途でしかつかない意味不明な機能があったりせず、
シンプルにエディタのみで、OO思考的に必要なクラスファイルを書いていくだけでいいってところだと思うんですけど。

でも数千以上のクラスファイルを管理できるぐらいに頭良くないとちょっと無理か。

611:デフォルトの名無しさん
08/12/02 23:45:29
>>603
>先輩がRailsを理解できない
>規約言う前に原理を説明しろとか言って怒鳴る

先輩と君との間には、だいぶ深い差があると感じる。

612:デフォルトの名無しさん
08/12/03 00:02:31
>>610
Java は色々な名前がやたら長いから通常のエディタじゃかったるくないか?
Exception 名とか

613:デフォルトの名無しさん
08/12/03 00:20:21
自分もXEmacsからEclipseに乗り換えたクチですが、便利だなと思える機能は
「それって文法的に自明だから、自動化できるよね」という物が殆どです。

例えばインターフェイス実装時のスケルトンの自動生成なんてのは典型ですし、
リファクタリング時の参照関係の追跡と参照元の書き換えなんかもそう。
手作業でも出来るけど、時間の無駄だしエラーの元なので今では「そこは自明
なので勝手にやっちゃって下さい」という感じです。

あとはエラーやプロジェクトの状況が視覚的に分かりやすいのも良いかな。
あまり関係ないですが、インターンの学生に課題としてクラスのスケルトンと
JUnitのテスト一式を与えたら随分楽しそうに取り組んでいます。
メソッド実装してEclipse上でテストを実行する度にグリーンが増えていくのが
楽しいらしいです。

614:デフォルトの名無しさん
08/12/03 00:25:50
C#は言語仕様をIDEで楽にプログラムできるようにしてあるとか聞くね

C++はIDE使ってもjava+eclipseほど楽になんなかった

615:デフォルトの名無しさん
08/12/03 00:29:12
>>614
>C++はIDE使ってもjava+eclipseほど楽になんなかった
それはMFCの設計の悪さから来ているだけ。

616:デフォルトの名無しさん
08/12/03 00:48:09
つーかjavaでeclipse以外の選択肢って無いだろ
eclipse使わない奴は自分のつまらない信念とポリシー(笑い)を主張してるだけ

617:デフォルトの名無しさん
08/12/03 00:50:40
javaビーンズとやらもマシになったと聞くが

あれはポトペタ?が楽になっただけか?モ?

618:デフォルトの名無しさん
08/12/03 00:54:28
>C#は言語仕様をIDEで楽にプログラムできるようにしてあるとか聞くね

この辺りを言語仕様に組み込むのは、MSっぽいし商売を感じる。
VBだけにしてくれってところだけど、そのうちVBもC#もどの言語でも垣根がなくなるんじゃないか?

dot netの機能で、C#では出来るけどJScriptでは出来ないとか言うわけにはいかないだろうし、
そもそも演算子オーバーロードーと同じく言語サポートとしてoperator - ()とするかライブラリでBigInteger.subtractにするかの差でしかないからなぁ。



619:デフォルトの名無しさん
08/12/03 01:13:09
ポイ捨てアプリならIDEでハックでいいんじゃないかと思うけど、自作ライブラリはエディタでつくるけどね。
実際継承ばかりだから重複するコードはないし、ちょっと手を加えてsuper.method(arg)とかで、
ほとんどOO的にしか作ってないしな。

テンプレート目的で使うIDEだと、確かにイミュータブルとかstatic void method(), clone()とかの概念を全く理解できないだろうからバカになるってはあるか。
javacとjavadocは非常に優秀だからこれだけで十分だけど・・・

Exceptionとか長いのは、「れ・い・が・い」ではなくて、「えくせぷしょん」と脳内で英語で発音しながらタイプするといいですよw
英会話とか英語に慣れてないと無理でしょうけど。
なれてくると、「あん・さぽーてど・おーぺれいしょん・えくせぷしょん」とリズミカルにタイプするようになるでしょうw

620:デフォルトの名無しさん
08/12/03 01:23:53
EclipseとNetBeans両方使ってるけどNetBeansの方が楽だな
軽いし

621:デフォルトの名無しさん
08/12/03 01:45:25
プロフ取るのはNBの方が簡単なんで好き

622:デフォルトの名無しさん
08/12/03 02:44:48
初心者のおじさんが通ります。

eclipseは良いですな。
初心者には。

実体を意識しなくてもコーディングできると言う意味では
○インスタンスの考え方(メモリとの関係とかポインタとか)が5年たっても身に付かなさそう
○ロジックに集中できる分素人が書いてもある程度動く(といいなぁ)
○して、初心者がプログラムに手をだす、と

いわゆる世紀末ってやつです。世紀末はY2Kをなおざりにしたまま通り過ぎましたがwww

623:デフォルトの名無しさん
08/12/03 03:14:07
>実体を意識しなくてもコーディングできると言う意味では

IDEといっても機能は多彩なので、機能ごとに話は変わってくるかと。

コンテンツアシストやリファクタリング支援などについては泥臭い作業は
大いに省いてくれるものの、それほど「実体」から離れることになるとは
思いません。
スタブの自動生成やポトペタについては・・・確かに初心者が無理解の
まま使っていると危ないなと思う光景は、多々あります。

初心者向けで良いと思うのはコードの整形機能です(IDEに限りませんが)。
「一つメソッド書いたらCTRL+SHIFT+F」と指導しておくとオートインデントの
結果からループ構造の間違いなどに気がつくことも多いようです。
結果としてインデントの重要性を理解して、自ら意識してタブを打つように
なるのも早いような気がします。

何れにしても、初心者であれそうでない人であれ、IDEのメリットは

>ロジックに集中できる

ここに尽きる気がします。

624:デフォルトの名無しさん
08/12/03 03:31:04
IDE が「何を自動化してくれているか」を
理解しないまま IDE を使うべきではない
とおもう

あと Eclipse vs NetBeans の議論は
ここでしないでくれ


625:デフォルトの名無しさん
08/12/03 03:35:24
>>622
蛇足ながら、コンテンツアシスト機能も初心者には良いと思います。

というのも、プログラム勉強したばかりの人がプログラムを書くと
変数名が宣言順にa,b,c,d...だったりする事が良くあります。
その度に「ちゃんと変数の意味を考えて長い名前をつけろ~」など
指導しますが、「だって長い変数名をタイプするの面倒だし・・・」と
無言の抵抗が返ってくることが、ままあります。

そのような場合でもコンテンツアシストによる変数名補完を覚える
と、長い変数名に対する抵抗感も随分とマシになるようです。

626:デフォルトの名無しさん
08/12/03 03:41:03
まあねぇ。

非static を参照できないってIDEに言われて理由を聞くと、
「IDEがだめって言ったから」、じゃねぇ・・・・


627:デフォルトの名無しさん
08/12/03 04:19:02
機能てんこもりも困るし、お節介も面倒だし、IDEも玄人と初心者用に分派するんじゃないの?
ただ、エクリプスは実際はプラグインの拡張を使っているだけでエクリプス固有(swtなど)の機能を使っているわけではないし、
もしnetbeansでも使えたら両者の機能的な差はないってことで、一太郎とワードの使用感(UI)でしかない。
netbeansはopenofficeと同じくもう一回ぐらいメジャー・バージョンアップすると最強になるんじゃないかと思う。

628:デフォルトの名無しさん
08/12/03 10:30:46
何年経っても中身がわからないまま使ってるなんて余程向上心がないんじゃないの
しかしそんな奴実際見たことねーぞ

629:577
08/12/03 10:36:11
ところで六角形の質問をした者ですが、そのreadresolveとやらを使って実際に
ソースを書いてもらえませんか?

630:デフォルトの名無しさん
08/12/03 10:56:40
>>629
readResolveが出てきたのは >>579 がレス先間違っただけのような

>>577 の話なら double[] 使わずに int[] 使って
n*sqrt3 の部分を全部 (int)(n * sqrt3) にすれば?

631:577
08/12/03 11:00:29
intにキャストすると小数点以下が失われて1になってしまうものかと思ってましたが、違うのですか

632:デフォルトの名無しさん
08/12/03 11:19:22
>>631
System.out.println(5 * (int)sqrt3); // -> 5
System.out.println((int)(5 * sqrt3)); // -> 8

633:デフォルトの名無しさん
08/12/03 11:21:18
了解です
ありがとう

634:デフォルトの名無しさん
08/12/03 12:30:04
細かいところ気にするなら Math.round を使えば良い。

635:デフォルトの名無しさん
08/12/03 13:09:01
>>629
この程度の分からないなら六角形を描くとか以前の問題だな。カス

636:デフォルトの名無しさん
08/12/03 13:16:10
いや、だから初心者スレに来てるんだろw

ここはプロフェッショナルスレじゃないよw

637:デフォルトの名無しさん
08/12/03 13:19:47
自分で調べられないようなカスの相手をするな。スレが荒れる

638:デフォルトの名無しさん
08/12/03 13:26:52
>>629
>>630
すまん、レス先間違えた。
579は576へのレスのつもりだった。

639:577
08/12/03 13:48:09
他にもっときれいな書き方とかあったら教えて下さい

640:デフォルトの名無しさん
08/12/03 14:01:22
チンコなきれいだって?!

641:デフォルトの名無しさん
08/12/03 14:20:56
チンカスだなお前は。ウザい消えろ

642:デフォルトの名無しさん
08/12/03 14:24:10
カス野郎がチンカスとかほざいてるよw

643:577
08/12/03 16:42:40
なんかよくわからないのでとりあえず他の掲示板で聞いて来ます

644:デフォルトの名無しさん
08/12/03 16:48:29
Implって何?
どんなクラス?

645:デフォルトの名無しさん
08/12/03 16:51:13
盗聴するクラス教えて

646:デフォルトの名無しさん
08/12/03 16:57:24
>>644
implementationの略
インターフェイスの既定の実装を提供するクラスに対して
名前を考えるのが面倒な時に○○Implというような名前を付ける

647:デフォルトの名無しさん
08/12/03 17:09:27
おれおクラスは学級崩壊すんでんだったぞ。

648:デフォルトの名無しさん
08/12/03 17:46:16
このスレ糞だな。初心者のためのスレじゃないのか?
統合環境がどうだの経験者が屁みたいな話したかったら別でやってこい。
ろくなのいねぇなここは。チンカス師ね

649:デフォルトの名無しさん
08/12/03 18:25:52
初心者のためのスレではないが、初心者歓迎なスレです。

スレ民はなぜかささくれています

650:デフォルトの名無しさん
08/12/03 18:52:42
>>648
チンカスはおまえ。ageんな
鼻糞ww

651:デフォルトの名無しさん
08/12/03 19:07:59
喧嘩すんな馬鹿ども

652:デフォルトの名無しさん
08/12/03 19:20:28
鼻糞が泣いちゃうだろ。まだジャヴァ初心者なんだからさw

653:デフォルトの名無しさん
08/12/03 20:53:36
>>639
Path2D path = new Path2D.Double();
path.moveTo(xPoints[0], yPoints[0]);
for(int i=1; i<nPoints; i++) { path.lineTo(xPoints[i], yPoints[i]); }
path.closePath();

Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.draw(path);

654:デフォルトの名無しさん
08/12/03 21:53:18
基本的には >>577 で良いと思うけど,応用性とか考えたら

final int nPoints=6;
final float radius=20,cx=2*radius,cy=2*radius;
int [] xPoints = new int [nPoints];
int [] yPoints = new int [nPoints];
for(int j=0; j<nPoints ; ++j){
xPoints[j] = (int)Math.round(cx+radius*Math.cos(2*Math.PI*j/nPoints));
yPoints[j] = (int)Math.round(cy+radius*Math.sin(2*Math.PI*j/nPoints));
}
g.drawPolygon(xPoints, yPoints, nPoints);

と書くかな。人によるだろうけど。



655:デフォルトの名無しさん
08/12/03 23:17:00
java.lang.Stringを拡張したしたクラスを作りたいのですが、どのように実装すればよいでしょうか?

656:デフォルトの名無しさん
08/12/03 23:21:56
できない
Stringは「変更できない文字列」以上でも以下でもないんだから,
class StringUtil {
 public static String Hoge(String str) { /*strをなんかいじくって返す*/ }
 public static String Foo(String str, int arg) { /*strをなんかいじくって返す*/ }
 …
}
こういうクラスを作っとけば同じことでしょ?

657:デフォルトの名無しさん
08/12/04 00:14:07
Effective C++とかでも強調されてるけど、継承考えるなら
単にメンバーにする事とどちらが良いか考えなきゃいかん。
多くの場合メンバーの方がまともな答。


658:デフォルトの名無しさん
08/12/04 00:27:42
Stringの中身を一切変更できないようにすると何かと扱いやすいから,
それを保障するために継承を禁止してるの

659:デフォルトの名無しさん
08/12/04 03:11:22
まんこの実装の仕方を知っているのだがどうすればいい?

660:デフォルトの名無しさん
08/12/04 03:30:55
いや、つまんないから

661:デフォルトの名無しさん
08/12/04 03:42:04
おまえらバカども寝ろ。明日会社だろ。暇人か?

662:デフォルトの名無しさん
08/12/04 04:09:29
なんだこいつ?

663:デフォルトの名無しさん
08/12/04 05:45:24
MacOSX1.5環境での質問です。
下記のような実行時エラーが出たのでlibj3dcore-ogl.soが読めないのかと思い、
LD_LIBRARY_PATHやjava.library.pathに.soファイルを含むディレクトリへのパスを追加したり、
カレントディレクトリに.soファイルのリンクを作成したりしてみましたが
一向に改善しません。

他に疑うべきポイントやなすべき操作はございませんでしょうか

--- ここからエラー出力

java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
 at com.imakitaindustory.ui.util.ImakitaPluginLoader.createPlugin(ImakitaPluginLoader.java:80)
 at com.imakitaindustory.ui.ImakitaUI.main(ImakitaUI.java:34)

Caused by: java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
 at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1753)
 at java.lang.Runtime.loadLibrary0(Runtime.java:822)
 at java.lang.System.loadLibrary(System.java:993)
 at javax.media.j3d.MasterControl$5.run(MasterControl.java:838)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:821)
 at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:252)
 at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3884)
 at com.imakitaindustory.ui.view.Imakita3DView.<init>(Imakita3DView.java:152)
... 11 more

664:デフォルトの名無しさん
08/12/04 11:19:35
Mac は .so じゃなくて .jnilib だと思うけど

665:デフォルトの名無しさん
08/12/04 13:38:42
質問させてください
bmp形式の画像を読み込んで、ピクセル毎のRGBの値を表示させたいのですが、どのクラスを使えばできますか?


666:デフォルトの名無しさん
08/12/04 14:19:54
>>665
javax.imageio.ImageIO と java.awt.image.BufferedImage

667:デフォルトの名無しさん
08/12/04 14:22:08
JavaからJRubyの呼び出しを行っているのですが、
オプションを指定して実行する方法がわかりません。
Fiberクラスを使うために--1.9オプションを指定する方法が知りたいです。

Fiberの機能を利用できればいいので、他の方法でもご教授ください。

668:デフォルトの名無しさん
08/12/04 14:30:27
>>666さん
ありがとうございます!試してみます

669:デフォルトの名無しさん
08/12/04 16:02:38
将棋倶楽部24でよく将棋を指すんですが
ちょっと前にjava更新があったのでしたところ
対局画面の右上に!←こんなのがずっとついてきます
前はこんなのなかったのに
やってない人には全く分からないと思いますので
気長に待つつもりです
誰かおね!


670:デフォルトの名無しさん
08/12/04 16:42:16
>>669
> プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
板の注意書きくらい嫁

671:デフォルトの名無しさん
08/12/04 18:07:40
Java6 update10 から
アプレットがポップアップしたウィンドウに
!マークが付くようになった。
以前はウィンドウの下部に
「警告:アプレットウィンドウ」とか付いてたけど。

>> 669
気にしないで大丈夫です。
「これは Java によって表示されたウィンドウです」
という注意書きのようなものです。


672:663
08/12/04 20:22:26
>664
ありがと何が悪かったかようやくわかった!

673:デフォルトの名無しさん
08/12/04 21:32:50
 
【サンタクロース、トナカイの酒気帯び運用罪での逮捕に、マジ逆切れw】(ZDNet)
URLリンク(builder.japan.zdnet.com)



674:デフォルトの名無しさん
08/12/04 21:37:38
マルチすんなカス

675:デフォルトの名無しさん
08/12/04 22:11:21
 
【サンタクロース、トナカイの酒気帯び運用で逮捕。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
URLリンク(builder.japan.zdnet.com)
URLリンク(builder.japan.zdnet.com)
URLリンク(builder.japan.zdnet.com)


676:デフォルトの名無しさん
08/12/04 22:16:43
ゴズリン大先生だってムカムカじゃないか!おまえが無能だからだろ。

677:デフォルトの名無しさん
08/12/04 23:47:48
無限大の扱いについて質問があります。

A=1/a;
if(A>3){
A=3;
}

という文で、aが0に近い値の場合、AがInfintyになってしまいます。
そして、Aが数字であるということが読み込まれずに、
下のif文が読み込まれないようなのです。
無限大の値と自然数を比べるよい方法はなにかないでしょうか?
よろしくおねがいします。

678:デフォルトの名無しさん
08/12/05 00:05:37
POSITIVE_INFINITYはMAX_VALUEより値は大きいから問題ないと思うけど。
Double.Nanになってるとかじゃないの?Double.isNan(A)でtureを返せばそう。

679:デフォルトの名無しさん
08/12/05 00:30:55
成る程
明日試してみます。
ありがとうございました。

680:デフォルトの名無しさん
08/12/05 12:03:55
実はaは、0に近いマイナスの値で、マイナス無限大になってるとか・・・

681:デフォルトの名無しさん
08/12/05 16:18:18
age

682:デフォルトの名無しさん
08/12/06 10:33:54
Javaのコンパイラの無料ダウンロードってどうすればできますか?
一番有名なのが停止期間?か何かで…。
あとダウンロードしても英語ばっかで何すればいいのかわからないんですが(笑)

683:デフォルトの名無しさん
08/12/06 10:41:18
よくそれでプログラムやろうと思うな
テンプレ読め

684:デフォルトの名無しさん
08/12/06 10:43:10
やりたくはないんですけど課題として出されてるので・・・。
学校にはコンパイラあるんですけど家でもやらないと追いつかないんですよ。
そういうわけでものすごい勢いで初心者です。
小学生に2次関数やれって言われてるくらいの感じです

685:デフォルトの名無しさん
08/12/06 10:53:07
>>684
ほい
URLリンク(services.netbeans.org)

686:デフォルトの名無しさん
08/12/06 11:09:56
>>685
ありがとうございます。
進めていくとJDKがどうのこうの…と言われて進めないのですが
JDKというのをダウンロードしようとしてもうまくいきません。
どうすればいいでしょうか?

687:デフォルトの名無しさん
08/12/06 12:26:50
よく釣られるスレだな

688:デフォルトの名無しさん
08/12/06 12:34:18
IBMのJREダウンロードってわっかり難いよね。
特定のバージョンのJREダウンロード見つけるのに
えらい苦労した記憶が

689:デフォルトの名無しさん
08/12/06 16:57:49
>>684
小学生で2次関数やってる奴なんか掃いて捨てるほどいるぞ

690:デフォルトの名無しさん
08/12/06 17:49:32
>>684
>小学生に2次関数やれって言われてるくらいの感じです

つ 公文式

その気になれば小学生だってラプラス変換。


そうか。公文でJavaの教材を作れば良いんだ。

691:デフォルトの名無しさん
08/12/06 18:09:03
netbeansは所々日本語みたいなんですけど、日本語版とか日本語化とかはないんですか?
エクリプスよりもかなりいい感じなんですけど。

692:デフォルトの名無しさん
08/12/06 18:14:19
>>689
だから、
無茶ってほどじゃないけど難しいことやらされてる
っていうくらいの例えじゃないのか


693:名無し
08/12/06 18:20:19
問題 au携帯電話の「ダブル定額ライト」プランの税込料金を計算するプログラムを作成しなさい。
動作は以下のとおり。
(1)自分の学生書番号と氏名の表示
(2)利用パケット数(整数)を入力
(3)利用パケット数が0以上である場合は、税込料金(整数)を表示
(4)利用パケット数が負である場合は、エラーメッセージを表示。
補足 
①定額1わずか1000円/月(税込1050円)、12500パケットまで
②使った分だけ1000円/月(税込1050円)+超過分、12500パケット超~52500パケット未満、0.08円/パッケト(税込0.084円)
③定額2最大4200円/月(税込4410円)で使い放題、52500パケット以上4200円/月(税込4410円)

パケット数が①5000②12500③35000④52500⑤8000⑥-1000のそれぞれの場合について実行させなさい。
難しすぎて困ってます。とける方いましたらお願いします。


694:デフォルトの名無しさん
08/12/06 18:27:16
どこが難しいんだよw

695:デフォルトの名無しさん
08/12/06 18:30:23
auに問い合わせろ

696:デフォルトの名無しさん
08/12/06 18:33:29
すれ違い

697:デフォルトの名無しさん
08/12/06 18:41:01
最初から考えることを放棄しているとしか思えない
これがゆとり教育というものか

698:名無し
08/12/06 19:04:57
すいません。ほんとに馬鹿でソースコーがまったくわからないんです。

699:デフォルトの名無しさん
08/12/06 19:22:41
Cの方が頭弱い人にも分かりやすく書いてある本が多いからC/C++からやった方が早く身につくよ。

700:デフォルトの名無しさん
08/12/06 20:00:07
>>698
馬鹿だからわからないんじゃない。
ちゃんと手順を踏んで、時間と労力を注いで勉強していないから
わからないの。あえて言えば、怠け者だから。

701:デフォルトの名無しさん
08/12/06 20:08:30
>>698
てか、こういう奴っていったい何をしたいんだろ?

702:デフォルトの名無しさん
08/12/06 21:49:10
>>698
ここは初心者歓迎スレなんであって、馬鹿はお呼びでない

帰れ

703:デフォルトの名無しさん
08/12/06 22:26:59
この問題だったら ruby みたいなスクリプト系言語か
mathematica/maple/maxima/matlab みたいなもんの方が
Java より楽だなぁ…

GUI 必要だともうちょっと何か使うが。


704:デフォルトの名無しさん
08/12/06 22:53:04
javaでファイルを起動するにはどうすればいいでしょうか?
コマンドプロンプトが使えればそれでもおkです。
よろしくお願いします。

705:デフォルトの名無しさん
08/12/06 23:18:49
System.out.print("あさげ!"+"\t");
この\tって如何言う意味ですか?


706:デフォルトの名無しさん
08/12/06 23:19:45
タブ

707:デフォルトの名無しさん
08/12/06 23:26:23
>>704
質問の意味がわからない。
実行ファイルをコマンドライン指定で実行したいということ?


708:デフォルトの名無しさん
08/12/06 23:33:38
javaアプリを起動なのか、
javaからwinアプリを起動したいのか、
javaから別アプリでファイルを開きたいのか。

どれだー

709:デフォルトの名無しさん
08/12/06 23:35:09
>>706
Sunx!


710:デフォルトの名無しさん
08/12/06 23:35:54
結局はテキストファイルをメモ帳等のソフトで開きたいだけです。


711:デフォルトの名無しさん
08/12/06 23:40:26
ググればわかるレベル多すぎ

712:デフォルトの名無しさん
08/12/06 23:45:44
URLリンク(d.hatena.ne.jp)

713:デフォルトの名無しさん
08/12/06 23:55:34
目的の為の手段で悩み続け、肝心な目的を忘れる

714:デフォルトの名無しさん
08/12/07 00:06:01
そのバカに釣られるおまえはもっとバカw

715:デフォルトの名無しさん
08/12/07 00:12:09
帯グラフを描くためにはどうやってプログラムすればいいんでしょうか?

716:デフォルトの名無しさん
08/12/07 00:21:10
>>715
まずはJavaの本買って勉強する

717:デフォルトの名無しさん
08/12/07 00:29:32
買ってグラフィックスまで勉強したのですが、帯グラフとかデータの割合を反映させたり
少し複雑になると頭真っ白になってしまいます・・・。

718:デフォルトの名無しさん
08/12/07 00:33:17
たぶんプログラミングにむいていないから諦める

719:デフォルトの名無しさん
08/12/07 00:43:17
それがいい。

720:デフォルトの名無しさん
08/12/07 01:29:40
>>717
どこがわからないのか落ち着いて考えた方が良い。
他のプログラミングができてグラフが描けないなら
むしろ算数の勉強不足の可能性大。

721:デフォルトの名無しさん
08/12/07 02:05:35
>>715,717
A:25 B:15 C:10というデータがあって、横幅200pxで帯グラフを描くとする。

まず、データの値を全部足して(25+15+10=50)、その結果で一つ一つのデータを割る(25/50=0.5、15/50=0.3、10/50=0.2)
帯グラフの横幅をその結果にそれぞれかける(0.5x200=100、0.3x200=60、0.2x200=40)。
これでそれぞれのデータの横幅が求まったので、描く。AとかBとかのラベルも適当に重ねて描く。

これを日本語からJavaに翻訳する。

722:デフォルトの名無しさん
08/12/07 03:08:47
system.in.readlnってなんでないんですか?

723:デフォルトの名無しさん
08/12/07 03:18:06
行列計算をしたくてJAMAを導入したのですが
例えば
A{1,2,3}
{2,0,2}
{0,0,1}

B{0,1,0}
{1,0,0}
{0,0,1}

というようなA,B二つの3×3行列のA×Bを求めたい場合はどのように書けばいいのでしょうか?
また、計算後の行列を配列変数に代入したり、文字列として出力する場合にはどうすればいいのでしょうか?

724:デフォルトの名無しさん
08/12/07 03:49:39
使ったことないけど回答。
掛け算はtimesメソッド。
//Matrix times(Matrix B)
// Linear algebraic matrix multiplication, A * B
URLリンク(math.nist.gov)のExample of Useに思いっきり乗ってる。

代入はgetで拾いつつforループまわせばいんじゃね?

725:デフォルトの名無しさん
08/12/07 03:53:10
Example of Use. The following simple example solves a 3x3 linear system Ax=b and computes the
norm of the residual.

double[][] array = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}};
Matrix A = new Matrix(array);
Matrix b = Matrix.random(3,1);
Matrix x = A.solve(b);
Matrix Residual = A.times(x).minus(b);
double rnorm = Residual.normInf();


726:デフォルトの名無しさん
08/12/07 03:53:29
>>722
オブジェクト指向分析的に、「システム」が行の入力を持つとは考えにくいから。
やっぱ行の入力は文字の入力ストリーム全般に対して持つべきで、
ファイルとシステム、さらにGUIとか文字列ストリームで別々に行の入力を実装するのは……

727:デフォルトの名無しさん
08/12/07 04:06:05
オブジェクト指向分析的にいえば改行コード(\n)を特定できないため、readLineを実装しても挙動が異なる。

728:デフォルトの名無しさん
08/12/07 04:13:29
したがって、System.out.println はオブジェクト指向分析的にウソっぱちです。
こんな似非オブジェクト指向言語は捨ててしまいましょう。

729:デフォルトの名無しさん
08/12/07 05:25:19
じゃ何がいいんですか

730:デフォルトの名無しさん
08/12/07 06:30:17
>>728
ジャバはオブジェクト指向言語なので捨ててしまっていいのはおまえの財布の中身です。

731:デフォルトの名無しさん
08/12/07 08:54:52
BufferedImage[][]の画像を合わせて一つのBufferedImageにしたいんですけど
どうすればいいでしょうか?

732:デフォルトの名無しさん
08/12/07 08:56:49
どうもできません。

733:デフォルトの名無しさん
08/12/07 09:14:41
ラッパークラスについて教えてください。
new Integer(10)というのを見て、
Integerクラスにはint型のフィールドがあるのかと思ったのですが、
APIを見てもどこにもそんなフィールどは無いようです。
int型の値10はどこに保持されているのでしょうか?
本を見てもボクシング、アンボクシングとは何かしか書いてありません。

734:デフォルトの名無しさん
08/12/07 09:15:13
マップエディタでチップを2次元配列に入れていって最後に
大きい画像として出力したかったんですけど無理ですか…

735:デフォルトの名無しさん
08/12/07 09:19:26
何をしたいのか意味不明です。

736:デフォルトの名無しさん
08/12/07 09:48:46
16進数の文字列をbmp形式の画像で出力するのに適したクラス、メソッドはどんなものがありますか?

737:デフォルトの名無しさん
08/12/07 09:57:58
16進数の文字列

738:デフォルトの名無しさん
08/12/07 09:58:34
Color#decode()
BufferedImage →簡単なのはsetRGB(),ある程度画像知ってるならgetRasterでWritableRasterにかきこむ
ImageIO.write()

739:デフォルトの名無しさん
08/12/07 10:12:38
Java SwingでJButton押下時に、Javaのファイルを
読み込んで、そっちのJFrameを表示させたいのですが
どうすればいいですか?


740:デフォルトの名無しさん
08/12/07 10:32:14
少し難しい質問なんですが、str.intern()したインスタンスもやはりgcされるんでしょうか?

741:デフォルトの名無しさん
08/12/07 11:04:29
>>733
よくわからないけど、int 型で取り出せるじゃない。
それとも実際の装備の問題?装備は標準決まってない限りは
どうなってるかは保証されてないのでは。


742:デフォルトの名無しさん
08/12/07 12:17:57
なんなんだ、この最近の流れは?

期末の課題があちこちで出たって事か?

743:デフォルトの名無しさん
08/12/07 12:19:58
>>734
無理じゃないよ。
そこまで専門用語が出せるなら、もう少し考えれば出来る。

744:デフォルトの名無しさん
08/12/07 12:50:21
>>733
あるよ
ただしドキュメントに private フィールドは記載されない

745:デフォルトの名無しさん
08/12/07 12:53:07
>>739
JButton押下時にjavaのソースファイルをコンパイルしたいという意味か?

746:デフォルトの名無しさん
08/12/07 14:55:19
>>739
ここに来るぐらいだから、AFrameのボタンのActionListenerで
BFrame作って表示するだけなんじゃないの

747:デフォルトの名無しさん
08/12/07 15:34:48
>>734
でっかいBufferdImageを作って、そこにチップをDrawImageしましょう

748:デフォルトの名無しさん
08/12/07 15:36:40
コンパイルしようとすると、
'javac'は内部コマンドまたはガイブコマンド、操作可能なプログラムまたはバッチファイルとして認識されてません
って出てきます。環境変数もCLASSPATHに設定したのに・・・どうしたらいいでしょうか?

749:デフォルトの名無しさん
08/12/07 15:38:03
すみません!!1を今見ました!!失礼しました

750:デフォルトの名無しさん
08/12/07 17:52:30
Formatter を使った書式で、
整数であれば小数点以下を出力しない、
という書き方はありますでしょうか。

たとえば System.out.printf(t, d) で
(d == 3.1) のとき "3.1"
(d == 3.0) のとき "3"
と出力するような t の書き方はありますか。


751:デフォルトの名無しさん
08/12/07 17:56:14
if文とかで条件指定するんじゃだめなの?

752:デフォルトの名無しさん
08/12/07 18:11:07
できれば書式文字列のみで解決できた方が
いろいろ便利かと思いまして。
「そんな書き方はない」のであれば
しかたないので分岐などを使うつもりですが。


753:超初心者
08/12/07 18:56:15
12月からIT企業に未経験で就職しました。今、javaの勉強を独習しております。
クラスの問題を解いているのですが、参考書を参考に解る範囲でコーディングしていますが
なかなか上手くいきません。実は1日悩んで解りませんでした。
超初心者なので少し噛み砕いて説明して頂ける方、教えてください。

問題文はこうです。
『commonパッケージにjava.util.propertiesを継承して、コンストラクタ内で
ディレクトリにあるプロパティファイルをロードするConstantPropertiesクラス
を作成しなさい。』というものです。

私の理解出来ている範囲で未完成ですがプログラムを作ってみました。
見当違いでしょうけど、宜しくお願いします。

package common;
import java.io.*;
public class ConstantProperties extends java.util.Properties
{
InputStream inStream = null;
public static ConstantProperties() throws IOException
{
Properties properties = new ConstantProperties();
try{
inStream = new BufferedInputStream(new FileSteream("property.file"));
properties.load(inSteram);
if (inStream == null)
{
throw new IOException();
}
String value = Properties.getProperties("key");
}
以下、例外処理。

754:デフォルトの名無しさん
08/12/07 19:04:15
その会社の怖い先輩に聞けよ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch