Третьим аргументом Collectors.toMap()
является функция слияния, которая является функцией, которая получает два значения Map
и возвращает "объединенное" значение. Это используется для объединения нескольких значений, которые соответствуют одному и тому же ключу.
Нельзя преобразовывать значения вашей карты из "1", "2", "3", ... в другие String
с.
Чтобы заменить значения чисел c на String
с, вы можете выполнить преобразование в преобразователе значений:
LinkedHashMap<String, String> Tmap =
users.stream()
.collect(Collectors.toMap(UserMst::getLoginId,
u -> convert(u.getTenantId()),
(x, y)-> x + ", " + y,
LinkedHashMap::new));
, где convert
- метод который принимает String
, такой как «1», и возвращает соответствующий String
.
Например:
public static convert (String x)
{
return x.equals("1")?"Rocks":x.equals("2")?"Mocks":x.equals("3")?"Docs":x.equals("4")?"Pocks":"";
}
Или вы можете добавить в класс UserMst
метод, который возвращает String
соответствует getTenantID()
этого экземпляра, а затем просто напишите:
LinkedHashMap<String, String> Tmap =
users.stream()
.collect(Collectors.toMap(UserMst::getLoginId,
UserMst::getTenantString,
(x, y)-> x + ", " + y,
LinkedHashMap::new));