长[]到长[],反之亦然?

Fil*_*dor 4 java

有没有人知道一种有效,快速和干净的方式来转换Long[]long[]Java,反之亦然,在明显的for循环中使用(un)box©?

注意:这不是关于拆箱Long或装箱long.我明确地谈论阵列!

"没有比循环和复制更好的方法"也是一个答案;)

编辑: 我知道做上述事情的意义,最好避免它.假设,我无法避免它,并希望在不使用第三方的情况下尽可能巧妙地做到这一点.

Jos*_*ior 9

如果您使用apache commons lang,您可以:

long[] primitive = ArrayUtils.toPrimitive(new Long[]{1L, 2L, 3L, 4L});
Run Code Online (Sandbox Code Playgroud)


Pet*_*rey 6

没有比循环和复制更好的方法了

最好的解决方案是首先避免转换.如果你有关于使用效率,避免忧虑Long[],因为它比大很多倍long[].如果你需要使用一个集合,你可以尝试TLongArrayList它包装很长的[].