繁体   English   中英

如何将int值添加到Set <Integer> (哈希集 <Integer> )?

[英]how to add int value to Set<Integer> (HashSet<Integer>)?

我创建了一个集合和一个要添加到集合中的随机数(int类型):

private Set<Integer> mySet = new HashSet<Integer>(numElements); // capacity of 'numElements'

Random r = new Random();
int rand = r.nextInt(maxVal - minVal + 1) + minVal;
mySet.add(rand); // error: cannot convert int to Integer

所以我尝试了这些:

1. mySet.add(rand); // error: no suitable method found for add(int)
2. mySet.add(Integer.valueOf(rand)); //error: cannot find symbol method valueOf(int)
3. mySet.add(new Integer(rand)); // error: type parameter Integer cannot be instantiated directly

它们都不起作用,如何将“ rand”添加到我的集合中?

您必须创建Integer类型的对象:

Integer intObj = new Integer(i);

i一个int类型。

因此,在您的示例中,它将类似于:

private Set<Integer> mySet = new HashSet<Integer>(numElements); // capacity of 'numElements'

Random r = new Random();
int rand = r.nextInt(maxVal - minVal + 1) + minVal;
mySet.add(new Integer(rand));

我成功找到了一种解决方案,解决了您试图为它们添加“ int”值的所有集合的问题。 我创建了此类:

class Number {
    int number;
    Number(int num) { number = num; }
}

然后,在我的代码中,我使用了它:

Number number = new Number(index); // index is int type
mySet.add(number); // adding an object into a collection is legal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM