我有一个TreeSet,它将充满整数。长话短说,我尝试从列表中存储的最后一个(最大的)值开始循环。我现在要做的是获取起始变量:
Object lastObj = primes.last();
Integer last = new Integer(lastObj.toString());
int start = 1 + last.intValue(); // the added 1 is just for program logic
我确信一定有更好的方法将一个对象(我知道它永远是一个int)转换成int 'start‘。有没有人知道更好的方法?
发布于 2009-05-20 12:53:40
您使用的是Java 1.6版吗?在这种情况下,您可以利用自动装箱和泛型来清理代码。
首先,可以将TreeSet声明为仅包含整数对象
TreeSet<Integer> primes;
现在,要从集合中获取对象,您可以
Integer last = primes.last();
使用自动装箱功能,您将获得
int start = 1 + last;
发布于 2009-05-20 12:50:31
在J2SE 5或更高版本中,它会自动发生,并具有“自动装箱”功能。
int start = 1 + last;
http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html
此外,如果您知道它们都将是Integer对象,请使用参数化类型:
List<Integer> obj = new ArrayList<Integer>()...
然后将其与自动装箱功能相结合:
int start = 1 + obj.last();
发布于 2009-05-20 12:50:47
如果你知道它们在被放入时是“整型”的,那么在集合中(集合不能包含基元,只能包含对象),它们会被转换成整型,这样,你就可以简单地Integer last = (Integer)lastObj;
。
不过,理想情况下,您应该使用TreeSet<Integer>
,然后它将在第一个位置向您提供整数。
https://stackoverflow.com/questions/890162
复制相似问题