簡體   English   中英

從哈希表中存儲的列表向新列表添加值時遇到麻煩-Java

[英]trouble adding values to a new List from a list stored in a hashmap - Java

我一直在尋找一種方法來做到這一點,這讓我發瘋了!

我想做的事情如下:

我有一個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());

看看我得到什么價位,這很好,但是我不能再將它們添加到新列表中嗎? 我知道我缺少明顯的建議嗎?

你說的是,你有地圖StringList<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);
}
List<String> allCompetitors = new ArrayList<String>();
for(Set<String> competitors : qualifiedCompetitors.values()) {
    allCompetitors.addAll(competitors);
}

你是這個意思嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM