[英]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.