【问题标题】:How to get objects in a list stored in a hasmap, to create new list如何获取存储在哈希图中的列表中的对象,以创建新列表
【发布时间】:2019-05-05 16:38:09
【问题描述】:

所以我有一个哈希图,它存储字符串作为键和列表作为值。

我需要在我的方法中创建一个新列表,用存储在 hashmap 中的列表填充我的新列表。

这样做我不确定如何将哈希图中列表的所有对象放入新列表中...

//Original hashmap
private Map<String, List<Object>> things;

//inside the method im trying to create...
List<Object> otherThings = new ArrayList<>();

//unsure what i need here:
otherThings.add....

新列表应该将列表中的所有对象都存储在哈希图中。

【问题讨论】:

  • 不,您不需要创建一个新列表并将对象存储在该新列表中,只是为了调用该对象的方法。您所需要的只是对该对象的引用。因此,例如:things.get("someKey").get(someIndex).increment().
  • 在问题中特别告诉我,我需要创建一个列表并使用在 hashmap 中找到的列表填充它。
  • 不确定您的确切意思。您的问题说您相信您需要创建一个新列表才能从地图列表中增加一个对象。我的评论只是说不,为了增加对象的属性,您不需要创建新列表。如果您想要创建一个新列表,则创建一个新列表,但这与修改对象的属性无关。你应该明确你想要达到的目标。提供示例输入和示例输出会有所帮助。

标签: java arraylist hashmap


【解决方案1】:

你可能想要这样的东西:

private Map<String, List<Object>> things;
List<Object> otherThings = new ArrayList<>();
otherThings.addAll(things.get("some_key"));

这会在 hashmap 中检索与“some_key”匹配的列表,并将内容复制到 otherThings 的新列表中。请记住,仅复制列表,但对象引用仍然相同。

【讨论】:

  • 或者只是List&lt;Object&gt; otherThings = new ArrayList&lt;&gt;(things.get("some_key"));
猜你喜欢
  • 2015-07-18
  • 2012-11-12
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多