ネストされたクラス、ネストされたリスト、およびマッピングを読み込んだ後も、これらの3つのメソッドをどのように実装するのか、まだ使用する方法を決めるのはまだ難しいです。ネストされたクラス、ネストされたリスト、またはマップ?
目的:ログファイルからの複数のサービスアップタイムの統計情報をトラッキングします。各サービスの状態の変更は、1行にあり、名前、oldStatus、newStatus、timeChangedを含んでいます。
最後に、これらの行間の時間を確認したいと思いますが、今は単純にデータを正しく
public class Services {
private List<String> AllServices = new ArrayList<String>();
// Initial thought of adding another list here, containing
// the variables, but how would I associate that to the
// service above?
private List<String> ServiceStatus;
public boolean AddService(String name) {
if (!AllServices.contains(name)) {
AllServices.add(name);
return true;
}
return false;
}
public List<String> GetServices() {
return AllServices;
}
}
すべてが見つけると良いです:
現在、私はそれの建物はここにされたクラスを使用しての道を下って行くとしています。パーザは新しいサービスを検出すると、それをリストに追加して重複がないようにします。その後、サービスステータスが変更されたことを見つけるたびに追加に移りました。私は、各サービスについて、そのデータをどのように格納するかを理解することはできません。
私は、サービス名である一意の識別子と、状態が変わるたびにレコードを保持し、変更されたものと時刻を持つデータベースを使用することに似ていると思います。私はそれを取得した後、私は時間の比較を開始することができます。
ここに変数を含む別のリストを追加するのではなく、それを各サービスにどのように関連付けるのでしょうか?
私は配列を考慮しましたが、Javaでは、データを追加するためにサイズを変更する必要がなく、静的に見えます。私は以来、PHPで、このための回避策を忘れてしまったが、私の限ら過去の経験から、私が構築し、のような配列を使用することができることを思い出し:拡張クラスを使用してのパスを私を導く
statusChanged = myServices["TheService"][i][date];
statusChangedTo = myServices["TheService"][i][new_status];
statusChangedTo = myServices["OtherService"][i][date];
statusChangedTo = myServices["OtherService"][i][new_status];
AllServices
|- TheService
| |- TimeDate
| | - New Status
| | - Old Status
|- OtherService
|- TimeDate
| - New Status
| - Old Status
を。私はサービスとサービスも受けることができました。サービスは単にサービスのリストを持つことになりますが、サービスは親のサービスクラスにリストされている特定のサービスに基礎となる変数を再びどのように関連づけますか?
もう一度、似ているがあまりにも多くの例を読んだあと、私が達成しようとしているものではないと思っているように思います。または、私は完全に壁から完全に離れており、はるかに良い方法があるかもしれません。
'myServices.get(" TheService ")。newStatus'はもっと" Java Way "になります。とにかく、JavaはPHPではありません。 – user2864740
* "それはリストに追加されるので重複はありません" *この場合、 'HashSet'を使う方が良いでしょう。 – user2004685
サイドノート:命名規則について読む。変数名は、たとえばAllServicesではなくcamelCaseになります。 – GhostCat