0

私はこれを行う方法を探し回っていました、そしてそれは私を怒らせています!

私がやろうとしていることは次のとおりです。

私はHashMapを持っています:

qualifiedCompetitors = new HashMap<String, List<String>>();

ハッシュマップに割り当てている値は次のとおりです。

String[] events = {"Helicopter", "Amphibious", 
                     "4x4", "Fire Engine"};

String[][] competitors = 
{
   {"Greg", "Will", "Fleur", "Bill", "Bella", "Sally", "Olive", "Sal", "Dora", "Chas"}, 
   {"Yuri", "Abe", "Tim", "Fleur", "Bonnie", "Vera", "Ed", "Dan", "Jill", "Rose", "Zoe"}, 
   {"Tim", "Fleur", "Will",  "Bill", "Bella", "Dan", "Jill", "Rose", "Greg",  "Abe", "Sally", "Yuri", "Olive", "Sal", "Jim"}, 
   {"Jill", "Rose", "Greg", "Abe", "Bonnie", "Vera", "Ed", "Zoe", "Ben", "Freda", "Chuck", "Fred"}
};

重要なのはイベントの名前であり、リストは競技者のリストです。すべての競合他社の新しいリストを作成したいと思います。

だから私は次のようなさまざまなことを試しました:

ListOfAllqualifiedCompetitors = new ArrayList(qualifiedCompetitors.values());

次に、ハッシュマップを反復処理します。

Collection allCompetitors = qualifiedCompetitors.values();

System.out.println("Values of Collection created from Hashtable are :");
//iterate through the collection
Iterator itr = allDrivers.iterator();
while(itr.hasNext())
  System.out.println(itr.next());

取得した値を確認するには、これで問題ありませんが、新しいリストを追加できませんか?私は何か明らかな提案が欠けていることを知っていますか?

4

2 に答える 2

1

あなたが言っStringているのは、 toのマップがあり、すべてを1つの長いリストにまとめList<String>たいということです。List<String>だとしたら:

final Map<String, List<String>> eventsToCompetitors;
final List<String> allCompetitors;

eventsToCompetitors = ...

allCompetitors = new ArrayList<String>();
for (Collection<String> competitors : eventsToCompetitors.values())
{
  allCompetitors.addAll(competitors);
}
于 2012-04-18T07:55:01.777 に答える
0
List<String> allCompetitors = new ArrayList<String>();
for(Set<String> competitors : qualifiedCompetitors.values()) {
    allCompetitors.addAll(competitors);
}

これはどういう意味ですか?

于 2012-04-18T07:55:54.913 に答える