我有一个TreeSet,它将充满整数.总而言之,我试图在列表中存储的最后一个(最大)值之后循环.我现在要做的是获取起始变量:
Object lastObj = primes.last();
Integer last = new Integer(lastObj.toString());
int start = 1 + last.intValue(); // the added 1 is just for program logic
Run Code Online (Sandbox Code Playgroud)
我确信必须有更好的方法将对象(我知道永远是一个int)转换为int'start'.有人知道更好的方法吗?
在J2SE 5或更高版本中,它会自动发生,具有"自动装箱"功能.
int start = 1 + last;
Run Code Online (Sandbox Code Playgroud)
http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html
此外,如果您知道它们都将是Integer对象,请使用参数化类型:
List<Integer> obj = new ArrayList<Integer>()...
Run Code Online (Sandbox Code Playgroud)
然后将其与自动装箱功能结合使用:
int start = 1 + obj.last();
Run Code Online (Sandbox Code Playgroud)
您使用的是Java 1.6版吗?在这种情况下,您可以利用autoboxing和泛型来清理代码.
首先,可以将TreeSet声明为仅包含Integer对象
TreeSet<Integer> primes;
Run Code Online (Sandbox Code Playgroud)
现在可以从集合中获取对象
Integer last = primes.last();
Run Code Online (Sandbox Code Playgroud)
并使用您获得的自动装箱功能
int start = 1 + last;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35925 次 |
| 最近记录: |