0

私は4つのクラスを持っています。1 つは顧客に関する情報を保持します。もう一つは注文について。さらに 2 つのクラスがレジストリの役割を果たします。1 つは顧客レジストリ、もう 1 つは注文レジストリです。

Orders レジストリには、次のようなハッシュマップがあります。

private HashMap<Integer, Order> orderRegistryMap = new HashMap<>();

顧客登録も同様です。

private HashMap<Integer, Customer> customersRegistryMap = new HashMap<>();

クラス orders には int orderid があります。クラス customers には int customerid があります。両方のレジストリを介してデモ データを追加しました (customerid 100 を持つ 1 人の顧客と、orderid 500 を持つ 1 つの注文があるとします。

orderid で注文を検索する、またはすべての注文のハッシュマップを取得する簡単なメソッドを作成しました。また、customerid で顧客を検索したり、すべての顧客のハッシュマップを取得したりする簡単なメソッドも作成しました。

orderid で顧客を検索し、その customerid に関連付けられているすべての注文を取得できるメソッドを作成するのに助けが必要です。

何か案は?

4

1 に答える 1

1

このような関係 (これは 1 対多の関係のように見えます) を処理する一般的な方法は、注文自体に顧客 ID を格納することです。これは、各注文の顧客が 1 人だけであるためです。そうしないと、配列を反復処理するしかありません。

編集: 逆の関係 Customer->Orders の場合、次のような逆レジストリを使用します。

HashMap<Integer/*customer_id*/, 
        List<Integer> /*list of orders for the customer*/> customer_orders;

そして、それを注文や顧客と同期させてください。これは可能な限り高速に実行され、目的を達成するために使用するメモリを減らすことはできないと思います。

于 2013-01-11T15:03:29.750 に答える