如何基于整数数组的索引查找对象?

时间:2018-12-06 06:07:55

标签: java arrays collections

我有一个整数数组

Integer[] myArray= {1,3}; 

我还有另一个对象列表MyDept,它们具有属性idname

我想获取其ID与MyDept的值匹配的myArray的那些对象。

如果列表中的对象是

Objfirst(1,"Training"), Objsecond(2,"Legal"), Objthird(3,"Media") 

然后我要ObjfirstObjthird

1 个答案:

答案 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
}