javaでコレクションインターフェースを用いた場合についてお伺いいたします。
現在、Hashtableでデータを管理しているのですが
Valueをキーにしてtableキーを取得する方法を探しています。
ValueにはStringオブジェクトが入っており、tableキーもStringオブジェクトです。
色々と試してみましたが良い方法がみつかりません。
どなたか方法を教えていただけないでしょうか?
やりたいことは
UNIXサーバプログラムで
atコマンドに現在登録されている標準出力から
ジョブキーをtableキーに設定時刻をValue値にいれているのですが
このHashtableからat登録ファイルを生成するのに
Value値からキー(ジョブ番号)を引っ張ってくる必要があります。
どなたか方法を教えてください!(><)
①atコマンドに登録
②現在atコマンドに登録されているコマンドリストをUNIXコマンドのat -lで標準出力か
ら取得。
③Hashtableを生成[ジョブ番号,設定日時]のHashtableを生成。
④Hashtableからファイルを生成。
⑤ファイルのフォーマットは[ジョブ番号,設定日時,コマンド]となる。
⑥GUI(クライアントからのデータ)からは[設定日時,コマンド]がデータで送信される。
ジョブ番号はatコマンドに登録されてからでないとわからないので
atコマンドリストの標準出力から引っ張ってくる必要があり。
どうしてジョブ番号が必要かと言うとGUIから現在登録済みのatコマンドを削除する際に
at -r ジョブ番号で削除する必要があるためです。
どなたかよろしくお願いいたします。
例えばApache Commons Collectionsに
DoubleOrderedMapってのがありますが、
こんなのでご要望に近いでしょうか。
# 赤黒木らしいですが。
>Banさん
早速のご返事ありがとうございます!
おお!
こんなのもあるんですね♪
ちょっと試してみようと思います。
他に良いのがあれば是非とも教えてください!
また明日試してみてご報告差し上げます!♪
ありがとうございます。
あと誤解されそうなので追記でkey,Valueha共に一意なもので保障されています。
正確にはガード処理を入れて保障しています。
Mapでキーを一意なのは保障されているが値が一意でない場合があるので
多分、Valueからkeyは引っ張れないのでしょうね…
でもこのライブラリは使えそうな予感がします♪
ので試してみます~
ん~…
結論から言うとプロジェクトでapacheライブラリを
使わせてくれませんでした。
なので試せませんでした。まぁ問題なく動作すると思うのですが
駄目だそうです。
んで結局atのリストの標準出力からHashtableを
2テーブル生成して(一個はジョブ番号がキー、もう一個は設定日時がキー)
仕方がないのでこれでやりました。
冗長なのが自分の中でかなりやるせないです…
もしくは自分で専用のMapクラス作るしかないんですかね~…
なんかJavaの標準クラスライブラリで出来ないものですかね…
まぁ今回はこれでいきますので
とりあえず解決としておきます。
他に良い方法などあれば是非お願いいたします。