0

次のように複数の情報を保存するのは良いことですか。

List<Map<Integer, Object>> l = new ArrayList<Map<Integer, Object>>();

Map<Integer, Object> m = new HashMap<Integer, Object>();
m.put(123, null);
l.add(m);

もっと良い方法があると思います。

私の場合、カテゴリのリストと、それぞれにこのカテゴリを使用している記事の数に関する情報を保存する必要があります。

4

6 に答える 6

4

では、を使用しないのはなぜですか。を含むクラスはList<CategoryUsage>どこにあり、それを使用する記事の数は? はるかに読みやすく、タイプ セーフで、保守しやすく、オブジェクト指向の IMHO です。CategoryUsageCategory

于 2012-07-17T13:19:18.040 に答える
2

カテゴリごとに記事の数を保存したい場合は、私が使用します

Map<Category, Integer> categoryCountMap = ...
于 2012-07-17T13:19:28.590 に答える
1

あなたは正しい道を進んでいると思います。しかし、他の情報をクラスにカプセル化し、オブジェクトのリストを置くこともできます

このような

Class CategorieModel{
   private Integer articlies;
   private Categories categories; 
//Constructors

//getters and setters

}

List<CategorieModel> m  = new ArrayList<CategorieModel>();

m.add(new CategorieModel(111,null));
于 2012-07-17T13:22:16.313 に答える
0

グアバのマルチマップを使用します。

http://code.google.com/p/guava-libraries/

Multimap<Category, Article> categorysToArticles = HashMultimap.create();

すべてのカテゴリを記事の関係に置きます。

categoryToArticles.put(category, article);

カテゴリ内のすべての記事を取得します。(コレクションとして)

categoryToArticles.get(category); 

カテゴリ内の記事の数を取得します。

categoryToArticles.get(category).size();
于 2012-07-17T13:37:59.937 に答える
0

使用している用語をより明確にする必要があります。「カテゴリ」とは何ですか、「記事」とは何ですか?

あなたの例では:

List<Map<Integer, Object>> l = new ArrayList<Map<Integer, Object>>();

Map<Integer, Object> m = new HashMap<Integer, Object>();
m.put(123, null);

NULL を渡すだけの場合、マップの値のポイントは何ですか?

各カテゴリへの参照の数が本当に必要な場合の1つの最も簡単な方法:

Map<Category, Integer> categoryCount = ...

または、カテゴリの主キーを使用してカウントを保持することもできます。

Map<Integer, Integer> categoryCount = ... // the Map key is Category.getId()

または、どの記事がそのカテゴリを参照しているかを知りたい場合:

Map<Category, List<Article>> categoryArticleRef = ... 

それから、いつでもできる記事の数を知るには、次のようにします。

categoryArticleRef.get(category).size(); // need NPE check, etc
于 2012-07-17T13:24:31.413 に答える
0

カテゴリと記事の間に多対多の関係を持ちたいですか? もしそうなら、私はあなたが持っていることをお勧めします:

Map<Category, Set<Article>>

このように各カテゴリについて、そのカテゴリの記事の数を知りたい場合は、カテゴリにマップされたセットのサイズを確認するだけで済みます。ただし、特定の記事が属するカテゴリの数を知りたい場合は、すべてのカテゴリを調べて、興味のある記事がセットに含まれているかどうかを確認する必要があります.

アップデート

コメントの 1 つで Hibernate について言及していますが、おそらく探しているのは双方向の多対多の関係ですか? つまり、Category オブジェクトはそのカテゴリに属する​​記事のコレクションを保持し、Article オブジェクトはそれが属するカテゴリのコレクションを保持します。

その場合は、次の質問を確認してください。

Hibernate Bidirectional 多対多の実装

双方向の多対多の関係についてのディスカッション。

于 2012-07-17T13:25:58.760 に答える