java コレクション

[戻る]
ほくと 2008/08/25(月) 23:34:07
javaでコレクションインターフェースを用いた場合についてお伺いいたします。
現在、Hashtableでデータを管理しているのですが
Valueをキーにしてtableキーを取得する方法を探しています。
ValueにはStringオブジェクトが入っており、tableキーもStringオブジェクトです。

色々と試してみましたが良い方法がみつかりません。
どなたか方法を教えていただけないでしょうか?

やりたいことは
UNIXサーバプログラムで
atコマンドに現在登録されている標準出力から
ジョブキーをtableキーに設定時刻をValue値にいれているのですが
このHashtableからat登録ファイルを生成するのに
Value値からキー(ジョブ番号)を引っ張ってくる必要があります。
どなたか方法を教えてください!(><)
@atコマンドに登録
A現在atコマンドに登録されているコマンドリストをUNIXコマンドのat -lで標準出力か
ら取得。
BHashtableを生成[ジョブ番号,設定日時]のHashtableを生成。
CHashtableからファイルを生成。
Dファイルのフォーマットは[ジョブ番号,設定日時,コマンド]となる。
EGUI(クライアントからのデータ)からは[設定日時,コマンド]がデータで送信される。

ジョブ番号はatコマンドに登録されてからでないとわからないので
atコマンドリストの標準出力から引っ張ってくる必要があり。

どうしてジョブ番号が必要かと言うとGUIから現在登録済みのatコマンドを削除する際に
at -r ジョブ番号で削除する必要があるためです。

どなたかよろしくお願いいたします。

Ban 2008/08/26(火) 00:02:08
例えばApache Commons Collectionsに
DoubleOrderedMapってのがありますが、
こんなのでご要望に近いでしょうか。

# 赤黒木らしいですが。

ほくと 2008/08/26(火) 00:27:34
>Banさん
早速のご返事ありがとうございます!
おお!
こんなのもあるんですね♪
ちょっと試してみようと思います。
他に良いのがあれば是非とも教えてください!
また明日試してみてご報告差し上げます!♪
ありがとうございます。

あと誤解されそうなので追記でkey,Valueha共に一意なもので保障されています。
正確にはガード処理を入れて保障しています。
Mapでキーを一意なのは保障されているが値が一意でない場合があるので
多分、Valueからkeyは引っ張れないのでしょうね…
でもこのライブラリは使えそうな予感がします♪
ので試してみます〜

ほくと 2008/08/26(火) 23:40:55
ん〜…
結論から言うとプロジェクトでapacheライブラリを
使わせてくれませんでした。
なので試せませんでした。まぁ問題なく動作すると思うのですが
駄目だそうです。

んで結局atのリストの標準出力からHashtableを
2テーブル生成して(一個はジョブ番号がキー、もう一個は設定日時がキー)
仕方がないのでこれでやりました。

冗長なのが自分の中でかなりやるせないです…
もしくは自分で専用のMapクラス作るしかないんですかね〜…
なんかJavaの標準クラスライブラリで出来ないものですかね…

ほくと 2008/08/26(火) 23:51:24
[[解決]]
まぁ今回はこれでいきますので
とりあえず解決としておきます。

他に良い方法などあれば是非お願いいたします。

古いスレッドには追加発言できません。