我有这样的代码:
public int getDistanceToNumber(int number) {
List<Integer> tuple5 = null;
int distanceCounter = 0;
for (int i = 0; i < allDraws.size(); i++) {
tuple5 = allDraws.get(i).getTupleAsList();
if (tuple5.contains(number)) { // autoboxing primitive ?
}
}
return 0;
}
问题是-我是否应该使方法参数Integer像int getDistanceToNumber(Integer number)
一样从原语自动装箱到Integer仅发生一次,否则没有性能问题。
这段代码在循环中运行超过10万次...
答案 0 :(得分:0)
您应该在JMH下进行测试。
Integer.valueOf(int)
并将其传递给List::contains(Object)
,可以避免装箱问题。number
永远不会改变,并为您做到这一点。在其他情况下,如果没有更多信息(allDraws
的类型?),在装箱转换之前可能还需要进行其他优化。