簡體   English   中英

如何從Java中的哈希圖獲取arraylist?

[英]how to get the arraylist from the hashmap in java?

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;
//import java.util.Map.Entry;

public class teste{ 
    public static void main(String[] args){

    }
}

我只想要每個鍵的最終arraylist用於顯示,即:

密鑰的返回值: [silicone baby dolls for sale, ego ce4, venus, sample,blue]

密鑰的返回值: [apple, banana, key, kill]

不需要為KeywordAlternate單獨列出。

您需要的是Map ,它具有csv數據中的Keyword作為Keyword ,而List的值包含與Keyword對應的所有Alternate值。

Map<String, List<String>> alternateMap = new HashMap<>();

請注意,使用映射中已存在的鍵將值放入映射中將覆蓋先前的值。 因此,您僅需在第一次找到新Keyword時才放入列表,即,當嘗試添加關鍵字的替代項時,請先檢查地圖中是否存在相應的列表,如果不存在,則創建一個列表並放入地圖中,然后將“ Alternate添加到該列表。

while(...) {
    String keyword = ...;
    String alternate = ...;
    // check whether the list for keyword is present
    List<String> alternateList = alternateMap.get(keyword);
    if(alternateList == null) {
        alternateList = new ArrayList<>();
        alternateMap.put(keyword, alternateList);
    }
    alternateList.add(alternate);
}

// printing the result
for(Map.Entry<String, List<String>> alternateEntry : alternateMap.entrySet()) {
    System.out.println(alternateEntry.getKey() + ": " + 
           alternateEntry.getValue().toString());
}

編輯

運行代碼后,它似乎可以正常工作。 該列表由entry.getValue()返回。 只需將其添加到您的主要方法的末尾:

for(Entry<String, ArrayList<String>> entry : example.items.entrySet()) {
    System.out.println(entry.getKey() + ": " +  entry.getValue().toString());
}

它應該給你想要的輸出

ego kit: [silicone baby dolls for sale, ego ce4, venus, sample, blue]
samsung: [apple, banana, key, kill]

注意:上面的代碼尚未編譯,但應提示您如何映射數據。

HashMap hm=new HashMap();

ArrayList ln=new ArrayList();

  ln.add("hi");

  ln.add("heloo");

  ln.add(123);

 hm.put("somename", ln);

 ArrayList ls=(ArrayList)hm.get("somename");

ArrayList<String> values= new ArrayList<>(hashmap.values());

String可以是任何其他對象類型

暫無
暫無

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

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