Конвертация List в Map
Есть такой клас:
public class Anima{
public List<String> name;
}
Хочу поместить все name с Animal в Map<String, Integer>. Есть имя но хочу указать уникальный ид.
Как написать в Java 8 вот такое, условие класс Animal нельзя менять:
for(int i = 0; i < animal.name.size(); i++) {
mapOfAnimal.put(animal.name.get(i), i);
}
Ответы (1 шт):
Автор решения: Alexandr
→ Ссылка
В случае, если нужно просто воспроизвести Вашу логику используя Stream API, то код будет выглядеть следующим образом:
package com.somepackage;
import lombok.Builder;
import lombok.Getter;
import java.util.List;
import java.util.stream.IntStream;
import static java.util.stream.Collectors.toMap;
public class Main {
@Builder
@Getter
public static class Animal {
public List<String> names;
}
public static void main(String[] args) {
var animal =
Animal.builder()
.names(List.of("Cat", "Dog", "Hamster"))
.build();
var result =
IntStream.range(0, animal.getNames().size())
.boxed()
.collect(
toMap(
i -> animal.getNames().get(i),
i -> i));
System.out.println(result);
}
}
Результат:
{Cat=0, Dog=1, Hamster=2}