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


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

☆★Java質問・相談スレッド174★★



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

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

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。


前スレ
★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1429709719/

32 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 19:50:32.25 ID:edrOx6Fw.net]
アプレットはクライアントで動いているからダイレクトにサーバのファイルを書き換えるのは無理かな。

アプレットからphpとかperlとかservletにデータ渡したほうが手っ取り早い気がする。

33 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:26:22.38 ID:mUaobLbc.net]
phpした事ないけどファイルの書き換えくらいなら簡単にできる?聞いた話では初心者でも簡単に覚えれるらしいけど。
phpなら無料サーバーでもそこそこあるから何とかなりそう。

34 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:37:17.33 ID:y/1cfe6e.net]
どっかのBaaS使えば?
自分でサーバー立てちゃうと後々面倒だよ

35 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:52:15.93 ID:y/1cfe6e.net]
ところで今更Javaアプレットなの?
Javaアプレットって業務アプリ以外ではほぼ完全に絶滅してて、
今時殆どのブラウザではセキュリティ警告出るし、
Chromeに至ってはデフォルトで排除、Win10でも使えなくなるよ?

36 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:27:46.07 ID:mUaobLbc.net]
と言うことはjavaアプリケーションとして配布してネットランキング機能つけたほうがいいってこと?

37 名前:デフォルトの名無しさん [2015/06/28(日) 22:35:37.64 ID:zyf8rln8.net]
どなたか石取りゲームのプログラムのソースコードを教えてください

自分で考えてよくわからなくなってネットで調べたら習ってない範囲の事ばかりで困っています

if,while,switch,forのどれかを中心に作りたいのですが…

38 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 22:39:02.72 ID:edrOx6Fw.net]
アプレットでもアプリケーションでもどっちでも動くようにすればいいよ。

39 名前:デフォルトの名無しさん [2015/06/29(月) 01:05:52.98 ID:ZZM8+jzw.net]
swiftがWindowsでも動けば良いのに

40 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 08:22:43.81 ID:7tycMTAq.net]
Java自体、一般人には毛嫌いされるからなあ
リーチを重視するならJavaScript+HTML5がベストだよ



41 名前:デフォルトの名無しさん [2015/06/29(月) 09:17:26.53 ID:3jcGZRUX.net]
だまテンでいくなら?

42 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 09:53:22.04 ID:rNDXEus0.net]
>>39
リーチフォークリフトは求人があるらしいね

43 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 11:26:51.16 ID:yT8fhRMS.net]
すいません
ライブラリの中に出てくるFactoryって
デザインパターンのファクトリパターンまたはファクトリメソッドパターンの意味ですよね?

44 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 12:18:34.85 ID:7tycMTAq.net]
GOFのファクトリーメソッドは一般のクラスにインスタンス生成専用のテンプレートメソッドを仕込むパターンだから、
クラス名にFactoryが付くことはないはず

45 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 13:00:32.30 ID:7lHJ5YCU.net]
Abstract Factoryじゃないの

46 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 13:24:31.15 ID:yT8fhRMS.net]
>>43
ではたとえば
DiskFileItemFactory
のFactoryの意味はなんですか?

47 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 14:04:25.80 ID:vdhrD5W6.net]
>>45
工場です

48 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 14:39:30.29 ID:yT8fhRMS.net]
>>46
そ、そうですね

49 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 19:09:01.67 ID:hIsoJUif.net]
Javaでデータをファイルに保存する場合って
XMLとjsonどっちが推奨なのでしょうか
XMLの方がライブラリが豊富みたいですが
ちなみにデータには日本語が含まれるのでUnicode関係で問題起きないほうがうれしいです

50 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 19:26:21.78 ID:MDUFougw.net]
>>48
その保存したファイルをどう扱うのか次第じゃね?
自分しか使わないならお好きなようにというか組み込みDB使えよになるし、
web系ならJSONの方がやりやすいだろうし



51 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 19:41:12.95 ID:7lHJ5YCU.net]
>>48
xsd用意するならXMLで管理の方が楽だけど、くわしくないならJSONの方がいいんじゃない

52 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 08:58:14.33 ID:HPXFOTKK.net]
>>25
org-modeから
pythonのプログラム実行したり
Javaを実行したりして
実行結果からlatexの生成まで自動で出来る

53 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 09:16:45.75 ID:HPXFOTKK.net]
Mavenにsenがないの何でだろうと思ってたら
mecabが代わりに入ってるのか

54 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 18:55:20.37 ID:C+19kKnD.net]
シューティングゲームの件なんですがゼビウスってIP解放されてるみたいなので自由に画像使っていいんですよね?

55 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 22:11:17.99 ID:2J99vRma.net]
JavaでポケモンのようなRPGゲームが作りたいのですが、
どうすればいいでしょうか?
ライブラリや、webサイトなど、いいやつあったら教えて下さい

56 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 23:02:33.02 ID:C+19kKnD.net]
>>54 java初めてすぐの頃それを目標にしてたけど難しかったから今は休止してやる夫のゲームとかシューティングとかを作って基本的な事学んでる。
自分でライブラリを一つ作れば完成する頃には基本的な事できるようになってると思うよ。

57 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 23:21:45.19 ID:i6vdxj63.net]
Javaでコマンドプロンプトのような対話型のCUI作りたいのですが、良い方法ないですか?
コマンドプロンプトにデフォで表示されるカレントディレクトリの文字列(プライマリプロンプト)を好きな文字列に書き換えたコマンドプロンプトみたいなUIを作りたいです

58 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 23:56:02.41 ID:C+19kKnD.net]
>>56
目的は何?あれかなり難しいと思う。
特に編集可能な部分とできない部分とか。

59 名前:デフォルトの名無しさん [2015/07/01(水) 00:17:38.78 ID:X0HvLJ6i.net]
それって普通にJavaからWindowsのコマンドプロンプト起動して使えばいいんじゃないの?

60 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 00:19:59.01 ID:uvZpt9v5.net]
>>57
PrologインタプリタをJavaで書きたいんです
素直にSwingでCUIっぽいGUI作るべきですかね……

>>58
cmd.exeとかですか?
あれってプライマリプロンプト消せますかね?



61 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 00:24:43.52 ID:uvZpt9v5.net]
連投すみません
getRuntime()でcmd.exeを呼び出すってことです

62 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 00:45:03.43 ID:hNUxg7tv.net]
>>59
インタプリタを作りたいなら、cmd.exe呼ぶのではダメだね。単にプライマリプロンプト書き換えるだけならいいけど

63 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 01:24:38.09 ID:uvZpt9v5.net]
>>61
プライマリプロンプトさえ書き換えることができれば最悪コマンドプロンプトでも大丈夫です
理想としては表示されるのは">"だけにしたいです

64 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 01:49:56.09 ID:hNUxg7tv.net]
>>62
promptコマンド実行するのは?
www.k-tanaka.net/cmd/prompt.php

65 名前:デフォルトの名無しさん [2015/07/01(水) 01:56:01.55 ID:X0HvLJ6i.net]
なんだ
別途CUIウィンドウでも出してやりたいのかと思ってた

こんな感じでいいんじゃないの?
https://paiza.io/projects/sqg_omPTV2GmLGLPSYAblg

66 名前:デフォルトの名無しさん [2015/07/01(水) 05:45:11.73 ID:X0HvLJ6i.net]
10行目
System.out.println(">");
じゃなく
System.out.print(">");


67 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 11:01:03.85 ID:PAlD3UqJ.net]
>>64
理想は別窓でCUI作りたいんですけどね
ですが、その方法でもやりたいこと出来そうです
ありがとうございます

>>63
promptコマンド初めて知りました
getRuntime().execでそのコマンドをオプションで設定すればよさそうですね

お二方ともアドバイスありがとうございました!
この2つを組み合わせれば解決しそうです!

68 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 13:33:07.90 ID:wha2+jyf.net]
インタープリターを作りたいということでした

69 名前:デフォルトの名無しさん [2015/07/01(水) 14:19:24.12 ID:s1758YKL.net]
別窓ならProcess クラスでコマンドプロンプト起動して標準入出力のパイプで>>64みたいなことやればいいんじゃねえの

70 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 16:46:53.30 ID:PIE0mCjM.net]
擬似ttyみたのだろう、エコー有の



71 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 00:10:00.51 ID:0ZgtCbO4.net]
画面が2つあって
片方から片方へ動いたり
なんか処理をするたびに変数を書き換える

変数と
画面描画用と2つもあったりして

その変数が50ぐらいあって
わけがわからなくなってしまう
押したのに思った表示がされないって感じ。原因突き止めるのがしょりを1つ1つおってなかなか探しにくく大変

こういう時どうやって書いてますか?

72 名前:デフォルトの名無しさん [2015/07/02(木) 00:31:06.83 ID:APWzUQfG.net]
仕様や設計を大きい紙に図などを用いて描きこんで理解を深める

73 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 01:23:58.71 ID:XrMU8HC+.net]
>>70
座標とかまとめられるものはデータオブジェクト定義する

74 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 06:38:15.16 ID:0ZgtCbO4.net]
データオブジェクトですか
ありがとう

ほかにないですよね

75 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 08:57:53.15 ID:OKw+w+2Z.net]
>>70
捨てる

76 名前:デフォルトの名無しさん [2015/07/02(木) 11:28:42.93 ID:Y8pHgarV.net]
PDFrenderer使ってPDFを表示させようとしたら↓みたいなエラーがでるんだが
どういうことなのか誰か教えてください

com.sun.pdfview.PDFParseException: Unknown pattern type 2
at com.sun.pdfview.pattern.PDFPattern.getPattern(PDFPattern.java:85)
at com.sun.pdfview.colorspace.PatternSpace.getPaint(PatternSpace.java:103)
at com.sun.pdfview.PDFParser.doPattern(PDFParser.java:1012)
at com.sun.pdfview.PDFParser.iterate(PDFParser.java:659)
at com.sun.pdfview.BaseWatchable.run(BaseWatchable.java:101)
at java.lang.Thread.run(Unknown Source)

java.io.IOException: Unknown CMap: UniJIS-UCS2-H
at com.sun.pdfview.font.PDFCMap.getCMap(PDFCMap.java:67)
at com.sun.pdfview.font.PDFFontEncoding.<init>(PDFFontEncoding.java:73)
at com.sun.pdfview.font.PDFFont.getFont(PDFFont.java:133)
at com.sun.pdfview.PDFParser.getFontFrom(PDFParser.java:1166)
at com.sun.pdfview.PDFParser.iterate(PDFParser.java:719)
at com.sun.pdfview.BaseWatchable.run(BaseWatchable.java:101)
at java.lang.Thread.run(Unknown Source)

77 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 13:12:52.85 ID:/5FFDtBS.net]
下のは ユニコードとJIS系文字コードの変換マップが見つからんといって怒られてるっぽ

78 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 18:14:01.20 ID:3aNd8Ume.net]
ファイルに保存する関係で現在のエポックタイムをintで取得したいのですがどうすればいいか分かりません。どうすればいいですか?
分単位で扱えれば問題ありません。

79 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 19:22:02.73 ID:o36/Jvt3.net]
Java エポックタイムで検索はしましたか?

80 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 19:36:01.92 ID:3aNd8Ume.net]
>>78
÷1000で保存してDateクラスにする時だけ*1000にすれば大丈夫ですかね?



81 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:03:52.03 ID:PeTcumKk.net]
>>79
精度だけの問題ならそれでいいんじゃないかな

82 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:10:25.44 ID:7CO9LjsE.net]
sqlについて、コネクションやステートメントなどはsql実行時毎に毎回作ってクローズする、といった形にした方が良いのでしょうか

83 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:20:18.32 ID:PeTcumKk.net]
>>81
コネクションは、トランザクションをコミットするまではクローズしないんじゃ。
auto commitするにしても、都度クローズするのは性能が出ないんじゃないかな。

84 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:41:50.90 ID:7CO9LjsE.net]
>>82
ありがとうこざいます
コネクションを閉じるのはコミット後という感じなのでしょうか?
作ろうとしているのはデータを引っ張ってきて表示したりデータを入力して一件だけinsertしたりupdateするだけ(速攻コミットします)のアプリケーションなのですが
この場合はやはり実行時毎にという形の方がいいでしょうか

あとsqlを実行してくれるメソッド(コネクション確立などをまとめた)を作って戻り値としてresultsetを返す感じにしたいのですが、これはやはりまずいですよね?
これもクローズしなければ駄目ですよね・・・

85 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:51:46.53 ID:Kvr8TTAx.net]
質問します
OS:win7(32bit)
JAVA SE8

c:\2015のhelloフォルダにHello.javaがあります。

っでコマンドプロンプトでclasspathを使った実行方法が
雑誌に載ってるのですが、java hello.Helloで実行できるのに
何を意図してclasspathで実行してるのでしょうか?
そもそもclasspathがよく分かりません。

c:\2015>java -classpath c:\2015 hello.Hello
1.8.0_45
Windows 7

c:\2015>java hello.Hello
1.8.0_45
Windows 7

86 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 22:59:21.71 ID:rL7z2Pgh.net]
>>84
ggrks

87 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:00:28.29 ID:rL7z2Pgh.net]
>>83
馬鹿のいうことは聞かずに定石どおりやれよ

88 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:07:39.06 ID:Kvr8TTAx.net]
>>85
ggってもよくわからないので、聞きにきまいた
4行くらいでさくっと教えて下さい

89 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:18:33.80 ID:1YOEOzPi.net]
>>83
実行毎の方がクローズし忘れることもないし安全。性能をあまり求められないならその方がいいかな。
ResultSetも使い終わったらクローズしましょう。

90 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:26:28.28 ID:5WP1zBDs.net]
>>87
c:\ で実行したら違いが出ると思うよ。
CLASSPATHを設定しないと
-cp . とほぼ同じ。



91 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 23:28:08.00 ID:1YOEOzPi.net]
>>87
classpathはclassファイルを探すルートのパスを指定する
実行時にclasspathを指定しないとPCの設定をそのまま引継ぐから
万が一にも別のHelloクラスを実行しないように明示的に指定してる

92 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 07:09:56.23 ID:VpUx+qI9.net]
>>89-90
はい。別Helloクラスを実行しないように明示してるとおぼえます。
ありがとうございます。

93 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:20:52.26 ID:PJhu4/Se.net]
>>83
一般的にトランザクションは1業務処理単位に張るよ
webシステムなら1リクエスト、UIのないバッチ処理みたいなものならmain開始から終了まで

コネクションはシステム起動時に取得して使い回し、終了時に解放することが多いよ
webシステムみたいに複数同時に接続がある場合はコネクションプールを使って管理するよ

public static void main(String[] args) {
 Connection c = null;

 try {
  c = getConnection();

  // 中略
 } finally {
  closeConnection(c);
 }
}

94 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:24:55.46 ID:tBykVJfm.net]
>>87
g
g
r
k
s

95 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 10:22:55.07 ID:oe2mkH9K.net]
>>87




96 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 20:07:36.11 ID:U0VBrdgo.net]
シューティングゲームPHP使ったらオンラインランキング機能できた。
タイトル画面作ったら配布します。

97 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 20:37:18.84 ID:U0VBrdgo.net]
アドバイスお願いします。
https://www.mediafire.com/folder/8gurxfhhq2a4d/

98 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 21:41:19.51 ID:bFkPbJ/F.net]
そういのはCodeBreak;とかOSDNで公開してくれよ

codebreak.com/ja/

osdn.jp/

99 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 17:17:23.45 ID:ymH/SGdA.net]
EclipseでPHP、C++の開発もしたいんだけど別にインストールしないといけないの?それともjava用Eclipseに少しプラグイン追加するだけでいいの?

100 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:11:19.72 ID:xXA8rqiC.net]
>>98
プラグイン追加でおk



101 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 23:24:39.64 ID:PDA5IlYH.net]
同時に使うんでなければ、悪いこと言わないから別々にしとけ
混ぜるとワークスペースが壊れやすくなる
別々ならわざわざプラグイン入れたりしなくてもEclipse本体とセットになったのが配布されてるし

102 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 00:41:41.57 ID:3yF620GD.net]
ワークスペース壊れるんか。別にインストールすることにする。
javaに慣れてるとPHP型とかコンパイルエラーないから怖い。

103 名前:デフォルトの名無しさん [2015/07/05(日) 02:59:50.27 ID:18u325sL.net]
jbbs.shitaraba.net/bbs/read.cgi/study/2246/1279896594/534
  ↑ ↑  ↑ ↑  ↑ ↑ 

104 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 10:19:38.13 ID:9j5TixOJ.net]
自作のIterableインターフェースを実装したクラスのインスタンスを
for( : )文に書いたらコンパイルエラーになりました。
どうしてですか?ちょっと納得がいきません

105 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 10:30:46.80 ID:R5D1CG4B.net]
そうだよえ

106 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 16:27:25.74 ID:AmGpjmvR.net]
sublime text使ってる人います?

107 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 17:51:33.76 ID:/o7HY1ZG.net]
>>100
壊れたことなんかないけど。
その理屈だとeclipse別にしなくても、一つでワークスペース分ければいいじゃん

108 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 02:32:49.77 ID:Xk0+gGMN.net]
windowsにおけるjavaのzip版はどこから手に入るのでしょうか


eclipseの日本語版Pleiadesのzip版の中には /java/8 /java/7 /java/6 の様に特定のバージョンのjavaが一つのディレクトリに入っているのですが
オラクル公式からDL出来るwindows版JDKは全てインストーラー形式でした。

109 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 03:15:03.84 ID:Cp57x3bu.net]
>>103
どうしてですか?って何か間違えてるからだろとしか言いようがないなw

110 名前:デフォルトの名無しさん [2015/07/06(月) 05:19:07.41 ID:6pDI0Ukz.net]
エラーメッセージを読むところから始めないとだめだわな



111 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 06:10:22.68 ID:huOu0VG0.net]
とくに問題はない
ideone.com/L28sRg

112 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 23:05:58.96 ID:EWqBVBeG.net]
昨日からc++初めて一番思ったのは標準API少ない事。
メモリ管理まで辿り着いてないからメモリは分からないけどjavaのAPIが凄いことが実感できた。

113 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 07:55:16.93 ID:imZ4ShMS.net]
質問ですが、重複なしの順序付きリスト (ArrayList の set版) は (LinkedHashSet 以外は)ないのでしょうか。

ArrayList のように、add() 順に配列として保持しておきたいけど、重複はなしにしたい(set系)というときに、
HashSet は順不同ですし、TreeSetではソートが発生して順序が保存されません。
だとすると LinkedHashSet がぴったりだと思うのですが、別に Hashテーブルが欲しいというわけでもなく、前方後方リンクという挿入・削除の実装を重視したいのではなく、単に配列でよいだけなので、LinkedHashSetだと、あまりパフォーマンスがよくなさそうです。
ごく単純にArraySet のようなものがあれば良いだけに思うのですが、これだけ単純なものなら自分の知らない何かのクラスがあるのか?と思ったので・・・

こういう場合、自前で重複チェックを実装して ArrayList を使うものですか?

114 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 08:31:43.22 ID:frR7J/1C.net]
>>112
配列かリスト用意して
arraylist.add(key)
hashset.put(key, value)
とかでいいんでない?

115 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 09:16:45.26 ID:9NGpSVRi.net]
>>112
重複チェックを実装するといっても、Listのcontainsメソッドを呼ぶだけだから、そんなに大変ではないと思う。

116 名前:デフォルトの名無しさん [2015/07/07(火) 12:22:28.88 ID:NG0m4ULv.net]
swiftは戻り値配列で複数戻せるのに、Javaは一つしか戻せないのはなぜですか?

117 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:31:46.24 ID:q4sA+s6F.net]
libGDXは8bitWAV対応してないしSlickはBMPの扱いがPNG、JPEGと微妙に違う
SDLみたいな8bit/16bitWAVもOGGもBMPもPNGもJPEGもぜ〜んぶこれ1本で再生・表示できるぜ!!っていうのはjavaにはないのかな・・・

118 名前:112 mailto:sage [2015/07/07(火) 13:32:48.41 ID:imZ4ShMS.net]
>>113-114 ありがとうございます。

>>113
これだと、arraylist側には重複が生じて、hashset の計算もあってパフォーマンスが悪くなるような・・・

>>114
そうなんですよね。簡単な実装だからこそ、なんでここまで単純なものがクラスとして用意されていないのか、理由があるのかな?と思って。

実際には、add処理に一段かまして、
   if (list.contains(item)) { list.add(item); }
をするだけなので、ArraySet extends ArrayList のクラスを作って override して重複なし保証のクラスとしてあちこちで使っています。

119 名前:112 mailto:sage [2015/07/07(火) 13:34:05.10 ID:imZ4ShMS.net]
>>117
!が抜けていました。l to !がみにくい!!
   if (!list.contains(item)) { list.add(item); }
です。

120 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 13:42:01.97 ID:t1FyPIkw.net]
>>115
サポートされていないからです



121 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:19:53.12 ID:d+b4eC8p.net]
>>112
要素数はどれくらいの予定なの?

122 名前:デフォルトの名無しさん [2015/07/07(火) 19:42:13.80 ID:ti+MtJze.net]
>>118
これ計算量やばくない?
要素数が10未満ならいいだろうけど。

123 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:04:00.75 ID:oR9xV2kd.net]
C#はかなり出来る自信有るんですが、
Java習得に何日くらい掛かりますか?

124 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:06:16.10 ID:BuaBK/wt.net]
本当にC#を理解してるのなら、Javaの言語自体は既に完璧にマスターしてると言っていい
MSだけ覚えてればいいC#とは違ってJavaは周辺技術がカオスだから、その習得に時間がかかるけど、
それは実際に使いながら必要なところを学んでいけばいい

125 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:10:15.69 ID:oR9xV2kd.net]
>>123
心強いアドレス有難うございます。
Webプログラミング系やりたいと思っています。頑張ります。

126 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:22:40.65 ID:Bop5Vbl6.net]
C#学んだ後で『クラス名.this』なんて記述を知って鼻血が出そうになったわ。
インナークラスのJava固有の事情による言語仕様だしC#だけで完璧には及ばない。

127 名前:112 mailto:sage [2015/07/07(火) 20:24:35.20 ID:imZ4ShMS.net]
>>120
大体1万くらいなんで、大したことはないかと
逆に1億とかになったら、linkedList系はきついので、アクセス速度を考えてHashSetにするかも・・・

>>121
いや、大したこと無いと思う
1万のリスト、重複2000くらいのを回して 40ms くらいだった。
たしかに contains 重そうだけど、このくらいの数だと Hashよりは速いみたい

128 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:05:30.75 ID:d+b4eC8p.net]
class ArraySet<E> extends ArrayList<E>
{
public boolean add(E e)
{
return !contains(e) && super.add(e);
}
}

class ArrayHashSet<E> extends ArrayList<E>
{
private final HashSet<E> set = new HashSet<>();
public boolean add(E e)
{
return set.add(e) && super.add(e);
}
}

俺の環境だと要素数10000重複約2000のIntegerの場合で、
10倍以上HashSet併用の方が早いけどなー

129 名前:デフォルトの名無しさん [2015/07/07(火) 21:08:43.92 ID:ti+MtJze.net]
俺の環境でもLinkedHashSetの方が早いわ。
ideone.com/MG4Jmq

130 名前:デフォルトの名無しさん [2015/07/07(火) 21:17:15.43 ID:ti+MtJze.net]
検証時にJITコンパイラがデッドコードと判断してたとかじゃないんかね



131 名前:デフォルトの名無しさん [2015/07/07(火) 22:19:46.08 ID:aSgrhpaf.net]
Javaはヌルポが発生する条件が分かりにくくて嫌になってきた。引数にnullが認められるのかがわかりにくい。

132 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 22:21:10.53 ID:UK9JBwIr.net]
それはリファレンスを読んだ上で言っているのか






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

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

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