【初心者】Java質問・相談スレッド112【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/02/08(金) 19:48:24JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド111【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1200151522/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。
次スレは>>980あたりで。
0357デフォルトの名無しさん
2008/02/16(土) 15:03:360358デフォルトの名無しさん
2008/02/16(土) 15:56:33Iteratorとかvectorに<E>みたいなのをつけろって
eclipseでやると注意されるのですが
そこにIteretorでStringをあつかうとき<String>みたいに
やったら動きました。
本には書いてないので<>がなにかわかりません。
本だとIteratorでObjectにして好きなクラスを返すみたいになってるけど、
それはできないんですか?
0359デフォルトの名無しさん
2008/02/16(土) 16:06:35本に従ってやるならば、Eclipseでコンパイラレベルを1.4に汁
0360デフォルトの名無しさん
2008/02/16(土) 16:37:08hoge[0]=○○
という文字列を検索したいのですが
半角[]をどうやって表現すればいいのかわかりません><
0361デフォルトの名無しさん
2008/02/16(土) 16:45:53http://www.adobe.com/products/player_census/flashplayer/
Flashのアドビの発表でjavaの普及率が84.6%ってなってるけど?
これだけあれば個人的には十分。
2ちゃんねらは過去にFlashのリンクを何度も踏まされてるから
インストール率が高いとかかも。
0362デフォルトの名無しさん
2008/02/16(土) 16:57:59正規表現としては\でエスケープすればOK
Javaの文字列としては・・・
\\[で[にマッチするということになるな
0363デフォルトの名無しさん
2008/02/16(土) 17:33:57ClassNotFoundが出たら1.1だと判断すれば?
で、>>351が言うように、1.1に存在しないクラスを直接参照しないようにする。
0364デフォルトの名無しさん
2008/02/16(土) 17:40:55ありがとうございます!
てっきり\ひとつだけだと思ってました><;
0365デフォルトの名無しさん
2008/02/16(土) 17:59:340366デフォルトの名無しさん
2008/02/16(土) 18:23:57このスレでDerbyの使い方講座を開講しろっていうのか?
Apacheのページへ行ってDerbyのドキュメントを読め。webで検索しろ。
ここで質問するならもっと質問を具体的にして絞り込め。
0367デフォルトの名無しさん
2008/02/16(土) 18:35:23(1) derby.jarファイルにクラスパスを通す
(2) Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); を呼ぶ
(3) DriverManager.getConnection("jdbc:derby:test;create=true") で Connection を取得する
(4) 好きなSQL文を実行する
(5) Connection を閉じる
(6) DriverManager.getConnection("jdbc:derby:;shutdown=true"); を呼んでシャットダウンする
0368デフォルトの名無しさん
2008/02/16(土) 20:40:35T な変数には、<? extends T> なものを代入できるし、
<? super T> な変数には、Tはものを代入できるので、
返値に対してコバリアント的にしたい場合は、extends にして
引数に対してコバリアント的にしたい場合は、super にする
0369デフォルトの名無しさん
2008/02/16(土) 21:27:43if(a||b||c&&d)というのはaもしくはbまたはcかつdがtrueの時if文を実行ですよね?
ではif(a||b&&c||d)というのはaもしくはbがtrueかつcまたはdがtrueの時if文を実行。
ということで良いんですか?この仮定が合ってるとすると条件式の順番にも気をつけなくてはいけませんよね?
0370デフォルトの名無しさん
2008/02/16(土) 21:28:43ClassNotFoundException は、それを実行しようとしているかどうかに関わらず
それが分かったらいつVMが投げても構わないって仕様じゃなかったっけ。
それぞれの実装を別のクラスローダで読み込むのがいいんじゃまいか
0371デフォルトの名無しさん
2008/02/16(土) 21:35:42日本語でおk
0372デフォルトの名無しさん
2008/02/16(土) 21:47:12Java とは関係なさそうだけど。
* と + に優先順位があるのと同じ。
a || b || c && d => a || b || (c && d)
a || b && c || d => a || (b && c) || d
0373369
2008/02/16(土) 21:51:17ありがとうございました。
0374デフォルトの名無しさん
2008/02/16(土) 22:34:42もう少し解りやすく、他人に伝わるよう書く努力が欲しい。
if(a||b||c&&d)というのは、『a』もしくは『b』または『cかつd』のいずれかがtrueの時にif文を実行ですよね?
ではif(a||b&&c||d)というのは、『aもしくはbがtrue』かつ『cまたはdがtrue』の時if文を実行。
ということで良いんですか?
質問はこういう意味? なら>>372
ググるときは、『Java』、『演算子』、『優先順位』でOK。
0375デフォルトの名無しさん
2008/02/16(土) 22:45:04データを取得してテキスト形式で保存→新たに取得して比較→二日以上たったデータは削除
という感じなのですが、二日たったことを判断するのはどういう風にすればいいのか悩みます。。
ちなみにデータ取得時の日時は年/月/日/時/分まで保存してます
簡単に日にちで比較すると31日とか30日の判断もあるし、うるう年とかもあるので悩んでます><
いいアイディアはないでしょうか?
0376375
2008/02/16(土) 22:50:32どうもすいませんでした><;
0377デフォルトの名無しさん
2008/02/16(土) 23:15:140378デフォルトの名無しさん
2008/02/17(日) 00:07:31そんないつの時期に取ったか分からん統計出されても知らんがな。 Win に MSJVM が
デフォルトインストールだった時代や JavaScript のアプレット enable フラグだけ見てたら
それくらい行くだろうね。少なくとも 30 秒以上滞在してアプレットが起動しない環境は
倍以上居る。
0379デフォルトの名無しさん
2008/02/17(日) 00:35:10上記の方法で次々に値を代入していくにはどうすればいいですか?
0380デフォルトの名無しさん
2008/02/17(日) 00:41:28HashMapにaddするときに使ってる変数を変に使いまわしていないか?
HashMapに代入されるのは結局の所は参照なので参照先を書き換えると変わるぞ
0381デフォルトの名無しさん
2008/02/17(日) 00:55:40ありがとうございます
参照先が変わってるのかなあ
やろうとしていることは HTMLで入力した値を
サーブレットに渡してintにランダム変数を入れて
それをhashmapのkeyにして値も代入
一回目はうまくいくんですけど二回目以降に値が
リセットされてしまいます
0382デフォルトの名無しさん
2008/02/17(日) 01:04:26…?
HashMap のインスタンスが毎回生成されてる、なんてオチは無いデスヨね
0383デフォルトの名無しさん
2008/02/17(日) 01:12:22た、たぶんそれです
ありがとうございますOrz
もう少しがんばってみます
0384デフォルトの名無しさん
2008/02/17(日) 01:15:160385デフォルトの名無しさん
2008/02/17(日) 01:18:070386デフォルトの名無しさん
2008/02/17(日) 11:15:50いかんせん組み込みっぽいのはやったことがなくて。MIDP 2.0? とやらに対応させれば
良いんでしょうか? それとも専用の SDK でも買わなければけいないんでしょうか?
携帯の開発情報はそこそこありますがそれと同じと思って良いんでしょうか。
0387デフォルトの名無しさん
2008/02/17(日) 11:21:17操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
PATHの設定がどうしても出来ないためこれが出てしまっていると思うんですが、
>>1に書かれているURLが消えているのか飛べないです。
他に本も色々なサイトも見ましたが分かりません。
どこか分かりやすく説明しているところは無いでしょうか?
0388デフォルトの名無しさん
2008/02/17(日) 11:28:480389デフォルトの名無しさん
2008/02/17(日) 11:44:22しかしやはりどうも落としたバージョン(jdk-6-doc-ja)
だと上手くいかないようなので、申し訳ないのですが、質問を変えます。
改めてj2sdkを落としたいんですが、場所がどこなのか分かりません。
Javaの公式サイトから探しましたが、日本語に変換しても
別のページに飛ぶとまたすぐ英語になってしまうので、読めませんし訳が分かりません。
具体的なURLを直接教えて下さると大変助かります
0390デフォルトの名無しさん
2008/02/17(日) 11:45:34コーヒー返せwww
0391デフォルトの名無しさん
2008/02/17(日) 11:47:56やたら重いんで何かおかしいと思ったんですが。
でも英語だらけで分からないんですよ、ほんと。
国際派じゃないとこれから生きていけそうもないな
0392デフォルトの名無しさん
2008/02/17(日) 11:54:44document
0393デフォルトの名無しさん
2008/02/17(日) 11:55:53ググれカス
0394387
2008/02/17(日) 11:56:23ほんとに日本語でおkという感じなんですが…読めない。
やさしいJAVA2版に書かれていたURLも消えているようですし、
今の主流はもうj2sdkじゃないんでしょうか?
0395デフォルトの名無しさん
2008/02/17(日) 11:58:13確かにJDKとは書いてありますが、ドキュメントの方を取得されたようで。
Java SE Downloads
ttp://java.sun.com/javase/ja/6/download.html
リンク先には、JDK, J2EE, NetBeans, JRE と並んでいますが、
それぞれの説明を読む等で適切なものを選んでインストールしてください。
>>391
ま、ゆっくりやってくださいな。好きこそ物の上手なれとも言いますし。
アルファベットが読めないとか辞書を触ると目が見えなくなるとか言う人なら
更に教育を受けるか、病院に行った方が良いと思いますが。
0396387
2008/02/17(日) 11:58:16お騒がせしました
0398デフォルトの名無しさん
2008/02/17(日) 12:01:480399デフォルトの名無しさん
2008/02/17(日) 12:06:24あんなに懇切丁寧なレスを嫌味だなんて。
というか、有用な情報を見いだす目が著しく欠如しているってことか。
JDK落とすだけでこれだから、この先は想像を絶するいばらの道が待っていることだろう。
0400デフォルトの名無しさん
2008/02/17(日) 12:13:340401デフォルトの名無しさん
2008/02/17(日) 12:43:040402デフォルトの名無しさん
2008/02/17(日) 12:47:280403デフォルトの名無しさん
2008/02/17(日) 12:57:40>>387本人乙。
0404デフォルトの名無しさん
2008/02/17(日) 13:14:000405デフォルトの名無しさん
2008/02/17(日) 13:36:390406デフォルトの名無しさん
2008/02/17(日) 13:37:240407デフォルトの名無しさん
2008/02/17(日) 13:48:170408デフォルトの名無しさん
2008/02/17(日) 13:53:490409デフォルトの名無しさん
2008/02/17(日) 15:16:040410デフォルトの名無しさん
2008/02/17(日) 15:17:250411デフォルトの名無しさん
2008/02/17(日) 15:39:490412デフォルトの名無しさん
2008/02/17(日) 15:46:13母さんにあそこから最新の JRE 落として入れろとはとても言えない。
0413デフォルトの名無しさん
2008/02/17(日) 16:01:35まずはインストールをもっと簡単にして。
0414デフォルトの名無しさん
2008/02/17(日) 16:50:000415デフォルトの名無しさん
2008/02/17(日) 17:55:48もっともです。テンプレっぽいのに追加で。
**** 開発環境が必要の場合は ****
>>5
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0416デフォルトの名無しさん
2008/02/17(日) 17:59:58かえって混乱すると思う。
0417369
2008/02/17(日) 18:54:290418デフォルトの名無しさん
2008/02/17(日) 18:59:59ところがEclipseを使うのにJDKは不要だ罠
新人研修等ではじめからEclipseでスタートする場合、
JDKを入れたことがないという人も出てきそうなご時世だね。
0419デフォルトの名無しさん
2008/02/17(日) 20:16:41これってソート後の配列の添え字情報とかも取得できないんですか??
たとえば
ソート前
a[0]= 2
a[1]= 1
a[2]= 3
↓ ソート
ソート後
a[1]= 1
a[0]= 2
a[2]= 3
の[1],[0],[2]の情報を取得したいですー!何か方法ありませんかー!
0420デフォルトの名無しさん
2008/02/17(日) 20:25:55ただ単に安定なソートがしたい、ってだけなら、
List<Integer> lst = Arrays.asList(2, 1, 3);
Collections.sort(lst);
でOKじゃない?
0421デフォルトの名無しさん
2008/02/17(日) 20:35:50こういうラッパーをかぶせてからソートすればいいんじゃね
0422デフォルトの名無しさん
2008/02/17(日) 21:09:07一番高速なのは、quicksortのコードを自分でいじって実装することかな。
値をスワップするところで、添え字もスワップすればいい
0423419
2008/02/17(日) 21:09:52返答ありがとうございます
hoge[0] = 3423
hoge[1] = 4123
hoge[2] = 4142
a[0]= 2
a[1]= 1
a[2]= 3
みたいにhogeにID、aに値を保存していて、それぞれ添え字で=を確認してたんです
(つまり添え字が0ならID;3423→2みたいにです)
あとaには同じ値がたくさんはいっているのでソート後に値で確認もできないんです。。。
もしかして他にいい保存方法あったりしますかね^^;
0424デフォルトの名無しさん
2008/02/17(日) 21:10:48やっぱ自分で実装するのが一番早いですかね?。。
0425デフォルトの名無しさん
2008/02/17(日) 21:16:03class IDAndValue { int id; int value; }
ソートはComparatorを自分で実装すればいいだけ
0426デフォルトの名無しさん
2008/02/17(日) 21:21:10ありがとうございます
やってみます!
0427デフォルトの名無しさん
2008/02/17(日) 21:27:250428デフォルトの名無しさん
2008/02/17(日) 22:31:34BufferedReaderのreadLineのように一行ずつ読み込めるものがあると良いのですが、、、
0429デフォルトの名無しさん
2008/02/17(日) 22:45:340430デフォルトの名無しさん
2008/02/17(日) 22:45:43よりハッピーになると思う
0431デフォルトの名無しさん
2008/02/17(日) 23:05:38>>361のページに↓のようにいつ統計を採ったのかを書いてある
Millward Brown survey, conducted December 2007.
See Methodology Section for details on the Millward Brown study.
0432デフォルトの名無しさん
2008/02/17(日) 23:24:14t.start();
これでタイマーが開始しましたが、再びここで
t.start();
すると実行時エラーになります。
そこで t が t.start(); されているかを知る方法を教えてください。
0433デフォルトの名無しさん
2008/02/18(月) 00:01:19>>2 Good Luck!
0434デフォルトの名無しさん
2008/02/18(月) 01:07:55後ろに行くほど新しい情報が書いてあるログファイルなので後ろから読み込めたらいいなと。
容量はそれほど大きくもないのですが、、、
0435デフォルトの名無しさん
2008/02/18(月) 02:22:54それは tail コマンドと同じ機能っぽい印象を受けました。
そして、あまりに便利なコマンドだから、かっこいいことをしてるハズだ
と、そう思って検索してみました。すると…
勘違いしていました。tail.c
ttp://programamemo2.blogspot.com/2008/02/tailc.html
バッファサイズ決めて、(最初はファイル長を割って余った分だけ)ファイルから読み込んで
改行文字数を数えて、必要数たまったら、そのバイトから最後まで出力っぽい感じ。
ファイルが更新された時の処理も、そのブログ記事にあるとおりで、なんともはや…
0436デフォルトの名無しさん
2008/02/18(月) 02:36:16ファイルのケツから数kB〜数十kB ごとに読み込んで行数カウント、必要行数に
達したらそこから開始位置まで出力、達しなければその前のブロックを評価が定番。
0437デフォルトの名無しさん
2008/02/18(月) 08:34:15int sum(int[] date){
int r=0;
int i;
for(i=0; i<date.length; i++)
r += date[i];
return r;
}
}
public class sample34{
public static void main(String[] args) {
Test test =new Test();
int[] date1 = new int[]{1,2,3,4,5};
int result;
result=test.sum(date1);
System.out.println(result);
}
}
これで15が返ってくる理由教えてください。
私の考えはsum(int[] date)ここに{1,2,3,4,5}を入れるわけですよね?
でdate.lengthとなっているから、その個数5だと思うんですけど
すいません意味不明で・・・
0438デフォルトの名無しさん
2008/02/18(月) 08:54:320439デフォルトの名無しさん
2008/02/18(月) 09:21:12配列型の変数 date の length は int型で、この場合の値は 5 です。よって
L5: i が 5 未満の場合、L6 へ進む。そうでなければL7へ進む。
L6: r と date[i] を加算し、r にその結果を入れる。(i に 1 加える。L5へ進む。)
L7: r を返す。
// 何をしてるかと言えば、配列の各要素の値を加算した値を返してるだけ。
よって、Test のインスタンスメソッド sum(int[]) に
date1 を入れて実行すると 15 が返される。
// 各要素の値、1 から 5 までを加算した値
後は手元の本などで for文の仕組みを調べ直してください。
蛇足。制御文 if, else, for, while, do-while の "{ }" を省略した場合、
直後の1文が制御対象になりますが、見易さや事故防止等の為、
省略しないことをお勧めします。
0440デフォルトの名無しさん
2008/02/18(月) 09:26:03Σ data[i]
i=0
0441デフォルトの名無しさん
2008/02/18(月) 09:36:09これからも勉強頑張っていきます!
0442デフォルトの名無しさん
2008/02/18(月) 13:40:38Entryで得たvalueとkeyをStringにキャストしてInteger.parseIntをつかってから
int型にしてint型変数に格納しようとするとkeyだけキャストできないというエラーが出てしまいます
原因がわかりませんー・・・
0443デフォルトの名無しさん
2008/02/18(月) 14:01:46JavaのデフォルトタイムゾーンがGMTになっています。
デフォルトのタイムゾーンってどこをいじれば変更できるのでしょうか?
環境はJava1.6.0_04 Windows 2003 です。
0444デフォルトの名無しさん
2008/02/18(月) 14:06:03コードを見せてみれ
エラーメッセージも正確に
0445デフォルトの名無しさん
2008/02/18(月) 14:07:15キャストできないエラーというのは、「Stringにキャストして」の部分なのでしょうか?
1.5以降ならジェネリクスをお勧めします。
原因としては TreeMap に格納する際に何型を使ったのか、が怪しいところです。
0446442
2008/02/18(月) 14:14:34public Sortdata sort(Difference dif){
int i = 0;
String change_sm = null;
String change_play = null;
Sortdata data = new Sortdata();
NumericComparator c = new NumericComparator();
TreeMap map = new TreeMap(c);
while(i < dif.number){
change_sm = Integer.toString(dif.sm[i]);
map.put(new Integer(dif.replay[i]), change_sm);
i++;
}
Set s = map.entrySet();
i = 0;
Iterator it=s.iterator();
while(it.hasNext()){
Map.Entry e = (Map.Entry) it.next();
change_sm = (String) e.getValue();
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
data.sm[i] = Integer.parseInt(change_sm);
data.replay[i] = Integer.parseInt(change_play);
System.out.println(data.sm[i]+":"+data.replay[i]);
i++;
}
return data; }
class NumericComparator implements Comparator {
public int compare(Object o1, Object o2) {
int result=((Integer)o1).compareTo((Integer)o2);
if(result==0) result=1;
return result;
} } }
0447442
2008/02/18(月) 14:16:22エラーは
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at Sort.sort(Sort.java:34)
行は書き込むときに編集してしまったので違うかもです
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
とりあえず↑を指してます
0448デフォルトの名無しさん
2008/02/18(月) 14:21:41Integerで格納したんだから、Stringにはキャスト出来ない。
0449デフォルトの名無しさん
2008/02/18(月) 14:24:24Mapにputするときはkeyの部分をInteger型で入れている。
Integer型なのにString型へキャストしようとするからエラーになる。
0450デフォルトの名無しさん
2008/02/18(月) 14:31:02重ねてJ2SE1.5(5.0)以降ならジェネリクスをお勧めします。
ついでに autoboxing も機能するので更に見やすくなります。
> map.put(new Integer(dif.replay[i]), change_sm);
key が Integer, value が String。そりゃ key でキャストエラーになります。
以下蛇足。
・変数は使う直前で宣言すること。
・元が int型なら Integer だけにしておけば良いのに。
・初期化、比較、更新があるなら while ではなく for を使うように。
・ついでに初期化部で int i = 0; で宣言すること。(添え字の使いまわしは厳禁)
0451デフォルトの名無しさん
2008/02/18(月) 14:36:27ジェネリスクも試してみようと思います><
0452デフォルトの名無しさん
2008/02/18(月) 14:37:10set | find "TZ"
結果はカラ?
0454デフォルトの名無しさん
2008/02/18(月) 15:37:480455デフォルトの名無しさん
2008/02/18(月) 15:42:34JNIのこと?
0456デフォルトの名無しさん
2008/02/18(月) 15:55:04■ このスレッドは過去ログ倉庫に格納されています