【问题标题】:Java - Returning CollectionsJava - 返回集合
【发布时间】:2016-03-29 12:11:41
【问题描述】:

问题: 编写一个名为 personIndex() 的方法,在其中传入人员对象的 ArrayList。将每个 person 对象及其对应的 id 号放在 HashMap 中。按顺序返回人员对象的集合。

有人可以解释/展示我将如何做到这一点吗?

这是我的代码:

public Collection<person> personIndex(ArrayList<Person> parameterArr)
{
    HashMap<String, Person> answerMap = new HashMap<String, Person>();

    for (Person p: parameterArr)
    {
        answerMap.put(p.getID(), p)
    }
     return answerMap.values();
}

问题:我的代码是否正确?它会返回一个集合吗?

我想知道这是否是返回集合的语法正确方法,以及您将如何编写此方法?

问题:
当您编写该方法时,没有返回任何内容,但编译器说一切在语法上都是正确的

谢谢!

【问题讨论】:

  • 你写了一些代码..遇到麻烦..我们很乐意提供帮助..:)
  • 公共集合 personIndex(ArrayList parameterArr) { HashMap answerMap = new HashMap(); for (Person p: parameterArr) { answerMap.put(p.getID(), p) } return answerMap.values(); }
  • 那么您对代码有什么问题/疑问?
  • Java 编译器javac 或您最喜欢的 IDE 会立即告诉您您的代码是否在语法上正确。 (提示:不是,为什么personCollection&lt;person&gt; 中是小写的p?)
  • @SophieGele - 你可以简单地返回相同的parameterArr。 :P

标签: java collections hashmap


【解决方案1】:

除了在方法返回类型中没有大写“person”来表示Person类之外,您显示的方法似乎没有任何问题。

enhanced-for 循环完成后,您将得到一个哈希图的结果,其中键是 String 类型的人员 ID,值是 Person 对象。如果您想按顺序(1...2...3...4)返回带有其键的哈希图,您可以看到这个问题how to sort Map values by key in Java。由于String 已经实现了Comparable 接口,我链接的问题中的各种方法将有一个预定义的排序方法(来自String 类)来对字符串进行排序。

对 hashmap 进行排序后,您可以将值作为集合返回并返回,因为现在它将根据 ID 进行排序。

以后请展示您对哈希图中的键排序的尝试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2010-09-25
    • 1970-01-01
    • 2014-04-02
    • 2017-12-22
    相关资源
    最近更新 更多