簡體   English   中英

Java轉換列表 <String> 到地圖 <String, String>

[英]Java Convert List<String> to Map<String, String>

有沒有一種很好的方法將字符串列表(使用Collectos API?)轉換/轉換為HashMap?

StringList和Map:

List<String> entries = new ArrayList<>();
HashMap<String, String> map = new HashMap<>();

...

我的StringList包含如下字符串:

    entries.add("id1");
    entries.add("name1, district");
    entries.add("id2");
    entries.add("name2, city");
    entries.add("id3");
    entries.add("name3");

輸出應該是:

{id1=name1, district, id2=name2, city, id3=name3}

謝謝!

您不需要外部庫,這很簡單:

for (int i = 0; i < entries.size(); i += 2) {
  map.put(entries.get(i), entries.get(i+1));
}

或者,使用非隨機訪問列表的更有效方法是:

for (Iterator<String> it = entries.iterator(); it.hasNext();) {
  map.put(it.next(), it.next());
}

或者,使用流:

IntStream.range(0, entries.size() / 2)
    .mapToObj(i -> new SimpleEntry<>(entries.get(2*i), entries.get(2*i+1))
    .collect(Collectors.toMap(Entry::getKey, Entry::getValue));

Andy的答案絕對有效,它是一個不錯的三線,但這個答案可能解釋了如何使用Stream API)。

暫無
暫無

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

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