0

ホイ、

現在、Javaでリストを作成し、そこにエントリを追加しますlist.add("Example");

しかし、今は各エントリに ID を追加したいと考えています。私はこれを介して行うことができます

list.put("Example XY");
list.setData("Example XY", 1);

しかし、私のリストには重複した「名前」がたくさんあります。そのため、重複したキーを設定できないように見えるため、名前のキーがオーバーライドされます。

誰かがそれを解決する方法を考えましたか? どうもありがとう!

4

4 に答える 4

2

代わりにa を使用することを検討する必要がありますListViewerListViewerには任意の Bean オブジェクトを含めることができ、そのフィールドのいずれかを のテキストとして表示できますList

の例を次に示しListViewerます。


これは間違いなくより多くのコードですが、最終的にはそれだけの価値があります。

于 2013-09-10T15:15:05.540 に答える
1

MultiMapを調べる必要があります

使用するMultiMap<String, String>

Multimap<String, String> myMultimap = ArrayListMultimap.create();

  // Adding some key/value
  myMultimap.put("E1", "One");
  myMultimap.put("E1", "Two");
  myMultimap.put("E1", "Three");
  myMultimap.put("E2", "AnotherOne");

  // Getting the size
  int size = myMultimap.size();
  System.out.println(size);  // 4

  // Getting values
  Collection<string> sample = myMultimap.get("E1");
  System.out.println(E1); // [One, Two, Three];

お役に立てれば。

于 2013-09-13T20:26:05.077 に答える
0

オブジェクトが同じキーを持つ場合の意味を考慮する必要があります。使用しているキーと同じオブジェクトでない場合は、間違っています。文字列を使用する代わりにデータをオブジェクトに追加し、各「名前」の倍数を含むリストを作成できます

List l = new ArrayList<SomeObject>;

list.put(new SomeObject("red ball", 1))
list.put(new SomeObject("red ball", 2))

または値のリストのマップを作成します

Map<String,List<SomeObject>> = new HashMap<String,List<SomeObject>>;
    map.get("Red Ball")==null ? map.put(new ArrayList<SomeObject>(){{ add(x) }})
                              : map.get("Red Ball").add(x);

個人的には解決策1を好みます。

于 2013-09-13T21:00:34.323 に答える