在工作当中,经常会碰到求一个给定数组的固定长度的子数组,比如给定一个Object类型的array[],并且给定startIndexInclusive和endIndexExclusive,这两个参数分别表示从给定数组的哪个位置开始取,endIndexExclusive表示取到此位置为止,并且不能包括array[endIndexExclusive]这个值。首先我们得判断array[]是否为空,如果为空直接返回null,继而要判断startIndexInclusive是否小于0,如果小于0则将0赋值给startIndexInclusive,接着要判断endIndexExclusive是否大于array.length,如果是则将array.length赋值给endIndexExclusive。接着我们要定义子数组的长度为endIndexExclusive-startIndexInclusive。因为我们给定的数组类型是Object类型的,这里要取得具体的array的类型,使用Class
type = ((Object) (array)).getClass().getComponentType();来获得具体的数组类型。现在要判断定义出来的子数组长度是否为大于0,如果不是则使用Object emptyArray[] = (Object[]) Array.newInstance(type, 0);来构造一个长度为0类型为type的新数组,并且返回这个新数组。如果大于0则使用Object emptyArray[] = (Object[]) Array.newInstance(type, endIndexExclusive-startIndexInclusive);来构造一个固定长度的新数组,之后使用System.arraycopy(((Object)
(array)), startIndexInclusive,((Object) (subarray)), 0, newSize);来讲就数组中的值拷贝到新数组固定位置上并返回这个数组。当然如果我们传入的数组类型不是Object的,而是具体的八种原生类的包装类的类型,则不需要上面获得具体数组类型的步骤。
获取数组的固定长度的子数组
最新推荐文章于 2025-01-13 09:19:30 发布
本文详细阐述了如何在Java中通过给定数组、起始和结束索引来获取固定长度的子数组,包括特殊情况处理及不同数组类型的情况。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
HunyuanVideo-Foley
语音合成
HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效
1524

被折叠的 条评论
为什么被折叠?



