我有一个整数数组
Integer[] myArray= {1,3};
我还有另一个对象列表MyDept
,它们具有属性id
和name
。
我想获取其ID与MyDept
的值匹配的myArray
的那些对象。
如果列表中的对象是
Objfirst(1,"Training"), Objsecond(2,"Legal"), Objthird(3,"Media")
然后我要Objfirst
和Objthird
。
答案 0 :(得分:3)
您可以按照以下两个步骤进行操作:
List<MyDept> myDepts = new ArrayList<>(); // initialised arraylist of your objects
// collect the objects into a Map based on their 'id's
Map<Integer, MyDept> myDeptMap = myDepts.stream().collect(Collectors.toMap(MyDept::getId, Function.identity()));
// iterate over the input array of 'id's and fetch the corresponding object to store in list
List<MyDept> myDeptList = Arrays.stream(myArray)
.map(myDeptMap::get)
.collect(Collectors.toList());
的最小对象为:
class MyDept{
int id;
String name;
// getters and setters
}