简体   繁体   English

Java转换列表 <String> 到地图 <String, String>

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

Is there a nice way to convert/transform a list of Strings (with Collectos API?) into a HashMap? 有没有一种很好的方法将字符串列表(使用Collectos API?)转换/转换为HashMap?

StringList and Map: StringList和Map:

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

... ...

My StringList contains Strings like: 我的StringList包含如下字符串:

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

Output should be: 输出应该是:

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

Thank you! 谢谢!

You don't need an external library, it's pretty easy: 您不需要外部库,这很简单:

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

Or, a more efficient way with non-random access lists would be: 或者,使用非随机访问列表的更有效方法是:

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

Or, using streams: 或者,使用流:

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.

相关问题 转换列表<String>到地图<String, String>在 Java 中 - Convert List<String> to Map<String, String> in Java 如何转换地图 <String, List<String> &gt;到地图 <String, String> 在java 8中 - How to Convert a Map<String, List<String>> to Map<String, String> in java 8 将 map 字符串转换为 map 字符串列表字符串 - Java 7 - convert map string string to map string list string - Java 7 转换列表<HashMap<String,String> &gt; 列出<map<String,String> &gt; 爪哇 - convert List<HashMap<String,String>> to list<map<String,String>> java 如何将java对象列表转换为Map <String, Map<String, String> &gt; - How to convert a list of java objects to Map<String, Map<String, String>> Java将{String,String} []转换为Map <String,String[]> - Java convert {String,String}[] to Map<String,String[]> Java8将Map列表转换为字符串列表 - Java8 convert List of Map to List of string 转换列表<String>到地图<String, List<String> &gt; 以列表值为映射键,以空列表为映射值 java 8 - Convert List<String> to Map<String, List<String>> with list value as map key and map value with empty list java 8 如何转换清单 <Object> 进入清单 <Map<String,String> &gt;在Java8中 - How to convert List<Object> into List<Map<String,String>> in java8 转换清单 <E> 到地图 <String, List<String> &gt;使用Java 8流 - convert List<E> to Map<String, List<String>> using java 8 streams
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM