首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅根据另一个字符串数组的值从数组中提取特定对象

仅根据另一个字符串数组的值从数组中提取特定对象
EN

Stack Overflow用户
提问于 2019-06-07 07:31:54
回答 1查看 62关注 0票数 1

我正在用java做一个android项目。我有一个像这样的对象数组

代码语言:javascript
复制
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}]

我还有一个动态的字符串数组,所以它可以有几个值.看起来是这样的:

代码语言:javascript
复制
sessionID = {1, 3}

如何在议程数组中的"id“字段中检查这些会话id,并在id匹配的地方将这些对象只提取到一个新数组中。

注意:

  • 这是java而不是javascript。
  • 议程数组对象中的"id“是一个int。
  • sessionID数组是一个字符串数组。

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

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 08:39:24

Arraylist的更新示例:

如果您使用的是Java 8,请考虑以下设置:

代码语言:javascript
复制
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"};

你可以:

代码语言:javascript
复制
List<Agenda> agendaFiltered = agenda.stream()
        .filter(agendaObj -> Arrays.binarySearch(sessionID, Integer.toString(agendaObj.getId())) >= 0)
        .collect(Collectors.toList());

如果你跑:

代码语言:javascript
复制
agendaFiltered.forEach(System.out::println);

它只印刷:

代码语言:javascript
复制
Agenda{id=1}
Agenda{id=3}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56489855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档