我有两个
String
数组。如何同时循环两个数组以创建一个 HashMap<String, String>
,其中键来自第一个数组,值来自第二个数组?
例如。
Array1 = {"A", "B", "C", "D"}
Array2 = {"apple", "boy", "cat", "dog"}
生成的 HashMap:
[{A:apple}, {B:boy}, {C:cat}, {D:dog}]
这是我的代码,但它不起作用。
AtomicInteger index = new AtomicInteger();
Stream<String> stream = Stream.of(array2);
stream.forEach(x -> mappedData.put(array1[index.getAndIncrement()],x));
假设它们具有相同的大小,则没有重复项或空值:
IntStream.range(0, first.length)
.mapToObj(x -> new SimpleEntry<>(first[x], second[x]))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue))
您可以将
SimpleEntry
替换为 Arrays.asList
或在 java-9 List.of
中也
或者:
IntStream.range(0, first.length)
.boxed()
.collect(Collectors.toMap(x -> first[x], y -> second[y]))