展开全部
public static void main(String[] args) {
Integer[] buffer = new Integer[] { 12, 36, 48, 56, 67, 89, 24 };
int needSize = 3;
Object[] sie = new Object[needSize];
int leng = needSize;
int bufLen = buffer.length;
Object[] newSie = new Object[needSize];
for (int currInd = 0; currInd >= 0;) {
sie = Arrays.asList(buffer).subList(currInd, leng).toArray();
if (sie.length == needSize) {
System.out.println(Arrays.asList(sie));
}
currInd = leng;
if (bufLen - leng - needSize > 0) {
leng = leng + needSize;
} else {
leng = bufLen;
}
if (needSize > sie.length) {
// 这里是复制数组、 你可以在这里进行一下优化。
for (int i = 0; i
newSie[i] = sie[i];
}
// 补全
for (int i = sie.length; i
newSie[i] = 0xff;
}
break;
}
}
System.out.println(Arrays.asList(newSie));
return;
}
这个就是一e68a8462616964757a686964616f31333335313130个思路。你可以优化一下。运行结果就是:
[12, 36, 48]
[56, 67, 89]
[24, 255, 255]
就是你想要的。
里面有很多都是可以优化的。我使用的是 List.subList() 其实你看一下源码。完全可以自己实现。多敲敲就行了。我也是一点一点打出来的。