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


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

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



1 名前:デフォルトの名無しさん [2007/07/27(金) 08:46:32 ]
プログラミング言語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質問・相談スレッド103【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1182896607/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

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

116 名前:デフォルトの名無しさん [2007/08/01(水) 18:43:30 ]
>>114
Arrays.sort で出来るよ

117 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 19:18:47 ]
専門学校の教師に聞いた話だが、2年制とかになると早めに辞めさせてしまう方が評価が高いらしい
下手に全員が進級すると教室が足りないんだってw

118 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 20:07:32 ]
>>117
教室と言うか教室の中にある設備機材のほうだなw

だから講師が生徒潰しにかかって、それに触発されて生徒間も潰し合いし出して
マジで頭おかしくなって精神科・心療内科行く奴が増えて
そっち系の知識が豊富になりつつ、潰し合いに生き残った者たちはどんどん専門学校に洗脳されて外でワケワカメな事言いだすんじゃないか。

そもそも、コンピュータ系専門に常駐してる講師なんて業界の底辺から溢れて食ってけないから講師をry
それを補うためにたまに外部からプロ呼ぶんだろうが。


119 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 21:48:40 ]
>>118
まるでヒューマ○みたいな専門学校だなww
もっとツールを使わないで一から作る技術を身につけたほうが
いいんだろうけど。

120 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:08:50 ]
ツール類の環境を整えてるのが売りなんじゃ?
まあ、今は学生書があれば激安で一式そろえれるから今は独学でも勉強が。

仕事で使うような自社ライブラリとかはそもそも入手できないし。
仕事で使う数十万から100万するモデリングツールや動画編集ソフト類も無理だろうし。

121 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:09:58 ]
JMSのことが詳しくのってる本かサイトはありませんかね?
できれば日本語希望です。

122 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:16:50 ]
JMSなりActiveMQでぐぐって、最初のリストに出てくるサイトの中に無ければないんじゃね?

123 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 01:38:04 ]
struts関連の事ですので、多少スレ違いかも知れませんが
ご容赦下さい。

環境:JDK1.5 apache+tomcat struts winXP (+Exlipse3.2 All in One)

アクセスログ出力の為、RequestProcessorを拡張する事に
なりました。(Actionのexecute発行前後でログを出す)

で、今回画面項目のチェック等でvalidationを使用する為、
TilesPluginとTilesRequestProcessorを使用しています。

(参考www.atmarkit.co.jp/fsecurity/rensai/struts03/struts03.html)
上記サイトを参考にし、TilesRequestProcessorをextendsした
クラスをstruts-config.xmlのcontroller processorClass に
指定していますが、何の反応も有りません。
(ロジックを通っていない、エラーも特に起きない)
((エラーが起きる様なロジックをわざと用意しても同様))


で、PukiWiki様の説明によると、TilesPlugin使用時には
TilesRequestProcessorが自動的に指定される、との事でした
ので、ワザとcontroller processorClassに変なクラスを
指定してみたりもしたのですが・・・・やはり何も起きません。


上記の結果、controller processorClass指定時は。
他の設定ファイル(web.xml等)も設定が必要なのでは?
他に設定が無い限り、TilesRequestProcessoの自動指定
が外れないのでは無いか?と疑っているのですが、何か
ご存知の方、他に設定が必要でしたらお教え下さい。
お願い致します。

124 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 08:07:54 ]
www.atmarkit.co.jp/fsecurity/rensai/struts03/struts01.html
www.atmarkit.co.jp/fsecurity/rensai/struts03/struts02.html



125 名前:デフォルトの名無しさん [2007/08/02(木) 11:15:57 ]
統計ライブラリは何を使ってますか
フリーのものでお勧めのがあればご紹介ください

126 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:17:49 ]
setColorでRGB値で色を作ろうとした時に、
色を格納している変数の名前をr,g,bにしていたところ、

hoge.java:18: シンボルを見つけられません。
シンボル: コンストラクタ Color(int,java.awt.Graphics,int)
場所    : java.awt.Color の クラス
g.setColor(new Color(r,g,b));

というエラーが出たのですが、これどういうことでしょうか?
変数名をred,green,blueに変えたらコンパイルちゃんと通ったのですが、
引数に禁止されてる変数名とかあるのですか?

127 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:33:40 ]
>>126
gの型は何のつもりなんすか。int or Graphics?



128 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:39:59 ]
>>127
あ…Graphics gを引数で受け取ってて、
記憶域の都合で関数外でint r,g,bを宣言してたから
名前が被ってた…orz
Javaは昨日からだけどC/C++は2年くらいやってるのに
何をこんな間違いを…orz
ちょっと吊って来ます。

129 名前:質問です mailto:sage [2007/08/02(木) 12:47:08 BE:9069034-2BP(6)]
java で特定の日時を保存するには何のクラスを使えば適切なのでしょうか?

130 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:56:48 ]
>>129
君の言ってる保存って何?
ファイルに出力する事?

131 名前:質問です mailto:sage [2007/08/02(木) 13:15:19 BE:11335853-2BP(6)]
>>129
あ。すいません。
メモリー上で保持することです。JavaPlatform SE 6でお願いします。
Dateかと思ったんですが、ドキュメントをみるとメンバー関数に
推奨されてない的なことが沢山あったので別にあるのかなと思って質問いたしました。

132 名前:質問です mailto:sage [2007/08/02(木) 13:42:15 ]
int i;
for (int j = 1 ; j <= 9 ; j++){
i = 2 * j;
System.out.println("2 × " + j + " = " + i);

for文なんですが、出力部分の"+"の意味がわかりません。
どういう意味なんでしょうか?

133 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:45:34 ]
>>131
yyyy年MM月dd日 hh時mm分ss秒のDateインスタンスを作りたいってことね。
java.util.Calendarを使うこと。例えば今日の日付ならこうなる。

Calendar cal = Calendar.getInstance();
cal.set(2007, 7, 2, 13, 32, 40); // 2007年8月2日 13時32分40秒
Date today = cal.getTime();

Calendar#set()の第二引数は月の指定だが、0スタートなので注意。
詳しくはjavadoc参照。

134 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:49:37 ]
>>132
System.out.println("aaa"+"bbb");
表示されるのは「aaabbb」

int x=5;
System.out.println("aaa"+"x");
表示されるのは「aaax」

int x=5;
System.out.println("aaa"+x);
表示されるのは「aaa5」



135 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:50:26 ]
>>132
+は文字列同士の連結の意味
iとかjはintだけど文字列に自動で変換されたあとで連結される
たとえばj=3,i=6の場合、
System.out.println("2 × " + j + " = " + i);

System.out.println("2 × " + "3" + " = " + "6");

System.out.println("2 × 3 = 6");
になる

136 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:50:35 ]
>>132
なんだ、足し算教えろっていってるのか?

137 名前:デフォルトの名無しさん [2007/08/02(木) 13:51:45 ]
>>132
文字同士の連結
文字通りの足し算だね

138 名前:質問です mailto:sage [2007/08/02(木) 13:52:10 BE:31739876-2BP(6)]
>>133
おおお、詳しくありがとうございます(ノ∀`)
参考になりました

139 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:57:15 ]
さすがに千葉工業大学だなw
つりもレベル低いや

140 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 20:23:37 ]
よくわかったね

141 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:20:10 ]
よくわかるも何も自己紹介してるじゃん

142 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:23:20 ]
Be付けて恥さらし(笑)

143 名前:質問です mailto:sage [2007/08/02(木) 21:35:16 BE:7557252-2BP(6)]
>>142
ニセ者をニセ物と見抜けないおまいも(略

144 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 21:44:49 ]
やってることが恥晒しってことだろ



145 名前:デフォルトの名無しさん [2007/08/03(金) 10:03:28 ]
JTextAreaで表示するテキストの行間の間隔を変えたいのですが、それっぽい設定が見つかりませんorz
どこをいじれば良いのでしょうか・・

146 名前:145 mailto:sage [2007/08/03(金) 12:02:22 ]
自己解決しました。

147 名前:デフォルトの名無しさん [2007/08/03(金) 12:32:27 ]
してないです。

148 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 13:07:38 ]
test

149 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:09:41 ]
メゾッド内で引数に与えられたboolean型の値の変更をするために
Boolean型を使おうと思っているのですが、使い方がよくわかりません。

private void _found_error(Boolean error_frag)
{
  error_frag = Boolean.valueOf(true);
}

public void readFormData()
{
  // 初期値はfalse
  Boolean error_frag = Boolean.valueOf(false);

  // 内部でtrueにしているはずなのに
  _found_error(error_frag);

  if(error_frag.booleanValue())
  {
// なぜかここが実行されない
  }
}

何が悪いのか教えてください

150 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:32:02 ]
_found_error の error_frag が指す先を別のオブジェクトに変えても、
readFromData の error_frag が指す先は変わらないから。

151 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:33:43 ]
>>149
Boolean はimmutableなのでインスタンスの状態の変更はできない。
そしてJavaは全て値渡し。
error_frag の参照値がコピーされて _found_error に渡され、
_found_error ではコピーされた参照値をBoolean.valueOf(true) が戻す参照値で上書きする。
その際、readFromData の error_frag は影響を受けない。

解決法としてはインスタンスメソッドなら error_frag をインスタンス変数にする、
それが嫌なら boolean[] やら class MyBoolean{ boolean flag; } を使うなどして
インスタンスの状態を変更できるものを使う。

152 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:38:54 ]
考えてみれば
error_frag = Boolean.valueOf(true);
ではerror_fragの実体の指す先が変わってしまいますよね、失礼しました。

値を変えたいboolean型をこれらのメゾッドの関数が含まれるクラスのメンバー変数にして
解決することにしました。

どうもありがとうございます。

153 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:10:46 ]
連絡がありません。いいかげんな対応をされては困ります。あと一週間以内に何も連絡が無い場合、
落札者都合で削除すると同時に悪い評価が付きます。

154 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:42:52 ]
ServerSocket.accept()や、BufferedReader.readLine()のような
入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を



155 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 15:45:24 ]
途中で書き込んでしまったorz
ServerSocket.accept()や、BufferedReader.readLine()のような
入力がある、終わるまで待機するような方法を探しているのですが、スレッドを使って値を
監視する、以外に方法はないでしょうか?なんかこれだとCPUの無駄遣いのような気がしますし
もっと効率のいい方法がないかなと。


156 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:05:35 ]
何を待ちたいのかわからないが、
自スレッドを Object#wait で寝かせて、他のスレッドから #notify もしくは #notifyAll で起こすことはできる

157 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 16:09:32 ]
それか、複数のソケットを同時に待ちたいってことなら、Selector を使うと幸せかもしれない。
ぜんぜん違う話なら、もっとくわしく・・・

158 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:22:06 ]
初期状態の時にJListが描画(表示)されません。
中央の"set"の下らへんをクリックするとJListが初めて描画される感じです。
これを簡単に解決したいんですが、どうしたらいいでしょうか?
やはり、上の描画部分はCanvasで下はボタン等のパネルにすべきでしょうか?

up.spawn.jp/file/up39072.txt

159 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 18:22:51 ]
すいません、"set"じゃなくて"m"です。とりあえず中央のボタンの下らへんにJListがあります。

160 名前:デフォルトの名無しさん [2007/08/03(金) 19:00:50 ]
thread内でDBにSELECTしたりINERTしたりする時ってデッドロックって起きる?
同じテーブルの同じレコードに同時にINSERTしたりしたら起きるんかな?

161 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:01:20 ]
>>159
まあ、SwingというかAWTから勉強した方が良い。

162 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:12:21 ]
>>158
とりあえず super.paint(g);

レイアウトマネージャとか、AWTとSwingを混ぜるなとか、色々あるけど、まぁね。がんばれ。。

163 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:18:01 ]
そもそもprintConponent()な。

164 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:20:08 ]
paintComponentじゃね?



165 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 20:25:51 ]
>>157
Jinputを使ってgamepadからの入力を受け付けるんですけど
Jinputだといわゆるイベント(keyEvent)とかを発行しないんです。
だから現状はいつボタンが押されたか常にスレッドで〜msごとに
どのボタンが押されてるかチェックしてるんですが、
もっと効率よくイベント発行するタイミング(ボタンおされた時)を調べるにはどうしたらいいかなと。


166 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:33:16 ]
jinputなんか知りまへん・・・と言いたいが、そのうち自分も使いたくなるかもしれないから調べてみる。

・・・・・・
だめっぽいね。 一定時間ごとに poll するしかなさそうです。
よく考えたら DirectInput も joyGetPos も自分で取りに行くしかないっけか。。。
結論 → むり

167 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 09:28:53 ]
ソースコード上に書いたクラスのフィールドやメソッドの順番って、
コンパイル後やHotSpotコンパイラがネイティブコンパイルした後も維持されますか?
どのVMならというのではなくて、言語仕様としてどうなのかなと。

168 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 10:37:28 ]
ソースの字面出現順にメモリにアラインメントされるかってこと?

それなんて構造体?

javaはレジスタすら動的に配置して定期的にメモリ内容かわってるのに。
ていうか配列すら最適化のために連続しておかれる保証はないのに。


169 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:24:42 ]
>>155
Swingとかでの話か?
1文字入力がある度に、KeyEventListenerで拾って処理するってのが定石
お前さんが思うほど不可はかからない
もしくは、フォーカスが外れたタイミングで処理する

CUIとかでの話であれば、System.in.read() 等はブロックする筈

170 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 11:54:11 ]
自作classの使用方法についての質問です。

次のような構造でDBにアクセスするプログラムを作成しています。

(Console)--[入力取得と出力]--[データ加工]--[DBAHelperImpl implements DataStoreAccessHelper]--(MySQL)
注 [xxx]:自作Javaクラス、(xxx):システム外部を表します

[DataStoreAccessHelper]は、情報の取得、情報の保存、取得した情報からオブジェクトを作成、
取得した情報をjava.util.Listで戻す、などのメソッドを宣言したインタフェースです。
[DBAHelperImpl]は、そのインタフェースをMySQL用に実装したクラスです。

ここで、[DBAHelperImpl]を使用する方法について調べたところ、3通りの方法が見つかりました。
(1) DBAHelperImplをnewして使用する
(2) DBAHelperImpl内にstaticなインスタンスを作成し、
   作成したインスタンスをDataStoreAccessHelperとして戻すメソッドを通じて使用する
(3) DBAHelperImplをDataStoreAccessHelperとして作成して戻すクラスを新たに作り、
   そのクラス経由で取得、使用する

私は(1)の方法で使用していたのですが、(1)の方法はあまり勧められないとの記述があり、迷っています。
諸兄のご意見をお聞かせください。

171 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:03:26 ]
>>168
> 配列すら最適化のために連続しておかれる保証はない
まじでか。まあデカイ配列で落ちられても困るから有りだけど。

172 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:34:34 ]
>>170
(1)の方法で勧められない理由は何か説明できる?
説明できないならば、(1)の方法でも何も問題ない。

(2)は結局はImplがどれかを知らなければならないので(1)と何も変わらない
(3)はいわゆるFactoryクラスを作るパターンだが、Implを状況に応じて使い分ける必要がないならばただのオナヌー

173 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:42:55 ]
(2)は後のリファクタリングを意識した冗長設計だな。
シングルトンにしたほうが都合が良いなら、内部でそうすればいいし、
DBAHelperImplに致命的なバグがあり、
工数的に他所のDAOをラップして返した方が都合が良い場合もある。

174 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:49:43 ]
>>167
フィールドは並び替えられているという話を読んだ覚えがある。
char a;
int b;
char c;
みたいなのを順番どおり並べると隙間が出来て無駄なんで
int b;
char a;
char c;
に並び替えて隙間を詰める。



175 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:17:36 ]
低レイヤーの話をするのは無意味。Cじゃないし。

176 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:23:32 ]
>>171
javaの配列が短形でなくて良いのはどうせ最適化されて実行時に都合の良いように再配置され凸凹になるから。

メモリアドレスで言えば番地が連続している訳ではないし、その必要も無い。

配列要素nがあったとして番地的にn+1の要素が隣の番地にあるとは限らない。

だからjavaの配列は順次アクセスが早いとは限らない。


177 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:27:36 ]
まあこのくらいの問題なら自分でアラインするより
よっぽどスマートなメモリの使い方する(文字列以外)から気にしたら負け。


178 名前:デフォルトの名無しさん [2007/08/04(土) 14:58:42 ]
javaで構造体(みたいなもの)を定義してその中のある要素でソートするにはどうしたらいいですか?
たとえば
名前、身長、体重のデータからなる構造体を身長の高い順から表示するようなプログラムを作りたいんですが。

179 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:30:54 ]
compareTo

180 名前:デフォルトの名無しさん [2007/08/04(土) 15:31:04 ]
OSのシステム言語を英語にするとコンソールの日本語が文字化けしてしまうのですが
システム言語に関係なく日本語を文字化けさせないためには、どのようにすればよいのでしょうか?

ロケールなどを設定してもダメでした…

181 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 15:32:07 ]
仕様です

182 名前:170 mailto:sage [2007/08/04(土) 15:45:23 ]
お答えありがとうございます。
現時点では(1)を否定する理由が思いつかないため、(1)でいこうと思います。

その後いろいろ調べてみました。
(2)を採用する理由は、実装クラスの内部的な変更に強くなる(インタフェースのメソッドのみを使用している限り、利用する側の修正がない)。
(3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。

このように理解したのですが、これで問題ないでしょうか。

183 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 17:36:18 ]
> (2)を採用する理由は、実装クラスの内部的な変更に強くなる(インタフェースのメソッドのみを使用している限り、利用する側の修正がない)。
> (3)を採用する理由は、実装クラスそのものが別のクラスに変更されることに強くなる(データストアがWeb、Fileなどに変わっても使える)。

(2) と (3) はほとんど同じことだと思うが。

(2) は DBAHelperImpl のメソッドで取得するとはいえ、
実際に何のクラスが返されてるか外からはわからないわけで。
別のクラスにすりかえることはカンタン。

184 名前:デフォルトの名無しさん [2007/08/04(土) 18:04:03 ]
どなたかListについて教えていただきたいのですが

例えばArrayListでインスタンスを生成したListの変数があり
そのリストには1000個の要素(文字列)が入ってるとします。
もっと具体的に書くと文字列"AAA"と"BBB"と"CCC"が
それぞれ100個、400個、500個リストに格納されてるとして
(格納されてる文字列の並びは適当)
このときリストに格納されている各文字列の存在個数を高速に割り出す方法はありますでしょうか?

パフォーマンスを無視すれば配列のサイズ分だけ回せば可能ですが
それだと配列のサイズの二乗になってしまうので可変長データでやるにはかなり非現実的ですので



185 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:14:53 ]
>>184
ソートしてからなら1次でしょ。
StringはComparable<String>を実装してますよん。

186 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:17:15 ]
コピーしてマージソートしてから1週舐めるなら
文字列の種類が少ない場合に遅くなるかもしれんけどね。

187 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:22:50 ]
ハッシュマップで数えるとか。
for (String s : list) {
if (hashmap.containsKey(s)) {
hashmap.put(s, map.get(s) + 1);
} else {
hashmap.put(s, 1);
}
}

188 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:26:02 ]
TreeSetじゃだめなん?

189 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:27:08 ]
あーSetはだめだった。

190 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:40:40 ]
>>187の方法でやったことあるけど十分早かったような

191 名前:デフォルトの名無しさん [2007/08/04(土) 18:41:43 ]
いま軽くコレクションクラスでソートしてみたら恐ろしく簡単にソートできたので
>>185様の案で行くことにしました。ありがとうございました。

192 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:52:16 ]
ソートする必要なければ TreeMap/TreeSet よりか HashMap/HashSet のが速いよ
Tree の利点はキーが常にソート順を維持されてるところ
Hash は順序不定

193 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 18:58:05 ]
それじゃ187様の方法で行きます。ありがとうございました

194 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:12:46 ]
ところでListの配列をHashMapに変換または簡単に作成する方法ある?



195 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:32:16 ]
キーはいかがなさいますの?

196 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:44:35 ]
やっぱソートして比較することにした

197 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:50:02 ]
Stringのマイクロベンチマークは、String.equalsが落とし穴になるよな。
例えば定数をコンソールやテキストから入力するなら、s1 == s2 で true になることは無い。
静的にデータを持つならnew String(CONST_STR)みたいにしとくことが必要になる。

こういう正しいテストデータ作成用のライブラリってない?

198 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:53:25 ]
>>197
何がやりたいか分からん

199 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 19:54:20 ]
マイクロベンチマークがしたい。

200 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:01:55 ]
>>180
コンソール側のページコードでどうにかならない?

201 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:02:07 ]
>new String(CONST_STR)みたいにしとくことが必要

ここがわからない。

>正しいテストデータ

ここもわからない。

202 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:04:55 ]
>>201
> ここがわからない。
>> 例えば定数をコンソールやテキストから入力するなら、s1 == s2 で true になることは無い。

言語仕様がわからないなら介入しなくていいから。

203 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:05:37 ]
equalsつかえよ

204 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:08:27 ]
迷惑だからキミは絡まないで。



205 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:08:54 ]
とりあえず>>197はアホ

206 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:10:20 ]
String.equalsの仕様を知らない馬鹿がなんか邪魔してくる・・・

207 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:43:25 ]
オブジェクトが一致する場合と一致しない場合で、equals が true になる場合の計算コストが違うことをいってるわけ?
トーシロの俺には何がなんだか(´・ω・`)

208 名前:197 mailto:sage [2007/08/04(土) 20:46:30 ]
事故解決しますた

209 名前:208 mailto:sage [2007/08/04(土) 20:48:48 ]
誤爆です><

210 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 20:57:44 ]
     /ニYニヽ
    /( ゚ )( ゚ )ヽ
   /::::⌒`´⌒::::\   でっていうwwwwwwww
  | ,-)___(-、|
  | l   |-┬-|  l |
   \   `ー'´   /


211 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 21:55:52 ]
存在個数なら、ListなめてMapにカウント突っ込んでいけばいいんじゃないの?

212 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:36:53 ]
パフォーマンスの問題は、実際にパフォーマンス上の問題が起きてボトルネックが発見できた場合に対処すればいい。
机上の空論でのパフォーマンス対処ほど無駄なものはない

213 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:40:59 ]
 /i /{/'⌒'}  }}Y/ / ,r-、ヽ,  /
 ノ、|、ヾ_,,ノ  ノ ノ{ ヾ {^')) }フ/ /          _/
   \ヽ、    彡'`、、  'ー' ノ //",,゙ """ /    ヽ 理  議  そ
 ヽ-、ミ‐-、、 、,r=‐'¬ー=、、,-‐'_ ヽ、    /ノ     /  解  論  の
 ミ/   ~          ̄ノ /\   /彡 ""  |/   で   し  な
  /   ,'    u ∪   ! ヽ  | i、゙ー''"彡     /|   き  て  め
  、、∪ / ノ /  _,,,...-‐‐ニ=,ノ,,/ ヽ、,,_ \   ,イ / |   な  い  方
  ニ、=!, l_. レr=-ニ二、,,,.-'"    ー、==-ヽ'"/ / ヽ   い  る  を
  、(・,)>ノ⌒  ∠,(・,)_く  ゙`   ヽ゚ノ`ー=、_ /// ∠  の  こ
    ̄/""゙   ヽ ̄ ̄  \ヽ      ̄ ̄ //   ノ  か  と
  u 〈  、     u   (ヽ          //     ̄ノ ?  も
    ヽ -'   lj     >、       //  /    ̄ヽ、
    /ヽー‐ 、      /'"´ 'i     //  /       ∨ヽ/
    ^゙"⌒ヾ、     ,i|  ,"__}    //  /  /
    ー-  -      ヽ_人`'′ //  /  /
               / i'゙' /-─‐‐''/_/_
   、         _/-‐ヽ、___,,,, -‐‐  ̄
   ー-、、,,__,-‐'//ノゝノ ノ  ヽ\

214 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 22:45:30 ]
>問題が起きてボトルネックが発見できた場合に対処すればいい

どこの腐れ初心者ですか?
あ、ここは初心者スレか。悪かった

>机上の空論でのパフォーマンス対処ほど無駄なものはない
何千件とデータ回す場合を考えたら目に見えて明らかなんだが頭大丈夫かお前?



215 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:00:33 ]
それは凄い動体視力

216 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 23:20:25 ]
>>214
マジレスしとけば、数千件程度でパフォーマンスに影響出るって何時の世代のマシンだよw
数千回DBアクセスでもすんの?
数千回IOでもすんの?






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

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

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