我正在用Java开发Android项目。我有一个看起来像这样的对象数组
Agenda = [{id: 1, sessionName: Some name, sessionLocation: Some place},
{id: 2, sessionName: Some name, sessionLocation: Some place},
{id: 3, sessionName: Some name, sessionLocation: Some place}]
我还有一个动态的字符串数组,因此它可以有多个值...看起来像这样:
sessionID = {1, 3}
如何检查议程数组中“ id”字段中的这些sessionID,并仅将ID匹配的这些对象拉到新数组中。
注意:
这是Java不是javascript
议程数组对象中的“ id”是
整型
sessionID数组是字符串的数组
我尝试了几个例子,但没有一个起作用!
最佳答案
[更新] Arraylist示例:
如果您使用的是Java 8,请考虑以下设置:
List<Agenda> agenda = new ArrayList<Agenda>();
agenda.add(new Agenda(1));
agenda.add(new Agenda(2));
agenda.add(new Agenda(3));
String[] sessionID = new String[] {"1", "3"};
你可以做:
List<Agenda> agendaFiltered = agenda.stream()
.filter(agendaObj -> Arrays.binarySearch(sessionID, Integer.toString(agendaObj.getId())) >= 0)
.collect(Collectors.toList());
然后,如果您运行:
agendaFiltered.forEach(System.out::println);
它只会打印:
Agenda{id=1}
Agenda{id=3}