根据另一个字符串数组的值仅从数组中提取某些对象

时间:2019-06-07 07:31:54

标签: java android arrays arraylist

我正在使用 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匹配的这些对象拉到新数组中。

注意:

  • 这不是Java而不是javascript
  • 议程数组对象中的
  • “ id”是一个 诠释
  • sessionID数组是字符串数组

我尝试了几个例子,但都没有用!

1 个答案:

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