我正在使用 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}
我如何在Agenda数组的“ id”字段中检查这些sessionID,并仅将ID匹配的这些对象拉到新数组中。
注意:
我尝试了几个例子,但都没有用!
答案 0 :(得分:1)
[UPDATED] 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}