首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java object to int:一种更好的方式?

Java object to int:一种更好的方式?
EN

Stack Overflow用户
提问于 2009-05-20 20:47:53
回答 6查看 35.9K关注 0票数 6

我有一个TreeSet,它将充满整数。长话短说,我尝试从列表中存储的最后一个(最大的)值开始循环。我现在要做的是获取起始变量:

代码语言:javascript
代码运行次数:0
运行
复制
    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‘。有没有人知道更好的方法?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-20 20:53:40

您使用的是Java 1.6版吗?在这种情况下,您可以利用自动装箱和泛型来清理代码。

首先,可以将TreeSet声明为仅包含整数对象

代码语言:javascript
代码运行次数:0
运行
复制
TreeSet<Integer> primes;

现在,要从集合中获取对象,您可以

代码语言:javascript
代码运行次数:0
运行
复制
Integer last = primes.last();

使用自动装箱功能,您将获得

代码语言:javascript
代码运行次数:0
运行
复制
int start = 1 + last;
票数 8
EN

Stack Overflow用户

发布于 2009-05-20 20:50:31

在J2SE 5或更高版本中,它会自动发生,并具有“自动装箱”功能。

代码语言:javascript
代码运行次数:0
运行
复制
int start = 1 + last;

http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html

此外,如果您知道它们都将是Integer对象,请使用参数化类型:

代码语言:javascript
代码运行次数:0
运行
复制
List<Integer> obj = new ArrayList<Integer>()...

然后将其与自动装箱功能相结合:

代码语言:javascript
代码运行次数:0
运行
复制
int start = 1 + obj.last();
票数 8
EN

Stack Overflow用户

发布于 2009-05-20 20:50:47

如果你知道它们在被放入时是“整型”的,那么在集合中(集合不能包含基元,只能包含对象),它们会被转换成整型,这样,你就可以简单地Integer last = (Integer)lastObj;

不过,理想情况下,您应该使用TreeSet<Integer>,然后它将在第一个位置向您提供整数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/890162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档