将Arrays.copyOfRange从Java 6移植到Java 5

时间:2011-11-01 17:41:41

标签: java arrays java-6 java-5

我有一些源代码,我需要在Java 5下运行。不幸的是,代码使用Arrays.copyOfRange函数,该函数仅在Java 6中引入。仅使用Java实现相同实用程序的最有效方法是什么5 API?

3 个答案:

答案 0 :(得分:4)

以下是OpenJDK的代码,供那些有兴趣的人使用:

public static byte[] copyOfRange(byte[] original, int from, int to) {
    int newLength = to - from;
    if (newLength < 0)
        throw new IllegalArgumentException(from + " > " + to);
    byte[] copy = new byte[newLength];
    System.arraycopy(original, from, copy, 0,
                     Math.min(original.length - from, newLength));
    return copy;
}

答案 1 :(得分:1)

查看OpenJDK 6 page - 它的开源Java。您可以自己下载和阅读源代码,了解它是如何实现的,并手动将功能添加到应用程序中。

答案 2 :(得分:0)

最快的方法是使用System.arraycopy。这就是Arrays类BTW所做的。