将哈希集值返回为整数

时间:2012-10-09 16:16:29

标签: java int return loops hashset

简单的问题。我正在迭代Java哈希集,并希望将每个值作为int返回。我一直在使用下面的代码至少打印值。该函数是一个类方法,'neighbors'是类中的一个hashset。

      neighbors = new HashSet<Integer>();

      void get_n(){
        Iterator it = neighbors.iterator();
        while(it.hasNext()){
          print(it.next()); // ideally, I would change this
        }
      }

如何修改代码以便我可以返回(而不是打印)每个元素作为int?

3 个答案:

答案 0 :(得分:0)

不确定你想要什么,但这是一个起点:

List<Integer> get_n(){
    Iterator it = neighbors.iterator();
    List<Integer> list = new ArrayList<Integer>();
    while(it.hasNext()){
      list.add(((Number)it.next()).intValue());
    }
    return list;
}

你的Iterator it是无类型的(没有通用类型),所以我假设你需要向下转换。但是,如果您的neighbors HashSet实际上是HashSet<Integer>,那么您的代码可以简化为:

new ArrayList<Integer>(neighbors);

答案 1 :(得分:0)

如果使用泛化HashSet,那么迭代器将被类似地键入,并且it.next()将返回正确的类型。

如果你将HashSet声明为HashSet<Integer>,那么迭代器将返回一个(可装箱的)Integer,这是一个很长的路要走。您可以通过boxing的魔力返回Integerint

答案 2 :(得分:0)

哈哈

你可能想要'收益'这样的东西

尝试lombok-pg https://github.com/peichhorn/lombok-pg/wiki/Yield