У меня есть класс EmpObj
, который имеет два параметра Integer Empid
и BigDecimal Salary
.У меня есть карта со структурой Map<String, List<EmpObj>> map
. Я хочу, чтобы мой результат был в формате Map<String, List<Integer>>
карта после фильтрации всех сотрудников с зарплатой> 25000. Окончательный список будет содержать Name(String)
и Integer(EmpID)
.
* 1009.* Пока что Мой подход:
public class EmpObj {
Integer empid;
BigDecimal salary;`
public EmpObj(Integer empid, BigDecimal salary) {
this.empid = empid;
this.salary = salary;
}}
public static void main(String[] args) {
Map<String, List<EmpObj>> map = new HashMap<>();
EmpObj e1= new EmpObj(12,new BigDecimal(23000));
EmpObj e2= new EmpObj(13,new BigDecimal(45000));
EmpObj e3= new EmpObj(14,new BigDecimal(65000));
List<EmpObj> o1 = new ArrayList<>();
o1.add(e1);
map.put("Vinny",o1);
List<EmpObj> o2 = new ArrayList<>();
o2.add(e2);
map.put("David",o2);
List<EmpObj> o3 = new ArrayList<>();
o3.add(e3);
map.put("Mike",o3);
Мое выражение Java-8:
Map<String,List<EmpObj>> Mp1 =
map.entrySet().stream()
.filter(s->//Something Here)
.collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue));
Mp1.entrySet().stream().forEach(System.out::println);
Я не получаю Результат, любое предложение ???
Мой вывод должен быть Дэвид = [14], Майк = [13] Моя проблема решена.