如何遍历列表以仅获取特定属性

How to iterate over a list to get specific attributes only

我有一个列表

List<Widget> specialWidgets = WidgetUtil.getInstance().findAllWidgetsForType(WidgetType.UNIQUE);

其中 returns 包含小部件 ID 和名称的列表

[Widget [id=4f90b95d-8eb3-41e0-b3b1-d9ea516e1012, name=blue widget]

如何使用 java 7 将 ID 放入列表中?

您需要遍历刚刚从服务收到的列表,从每个 Widget 对象中提取 ID 字段并将该信息推送到另一个 List 对象中。

List<Guid> specialWidgetsIds = new List<Guid>();

foreach (Widget w in specialWidgets) {
    specialWidgetsIds.Add(w.id);
}

我认为您应该创建新列表,然后将 specialWidgets 中的 ID 添加到新列表

  • 如果你使用的是jkd8,使用lambda表达式进行转换

List specialWidgetIds = WidgetUtil.getInstance().findAllWidgetsForType(WidgetType.UNIQUE).stream().map(p -> p.getId()).collect(Collectors.toList ());

  • 如果您使用的是jdk7、jdk6... 就照 pkamathk 的建议去做吧。