1、Arrays.copyOf(T[] original,int newLength);
说明:复制数组original的元素,要复制的数组长度是 newLength。该方法会返回一个新的数组,新数组长度就是newLength。
注意:第二个参数newLength,当输入newLength的数值大于原数组的长度;多出来的长度就是对应新数组多出来的元素,这些元素会以原数组对应的数据类型默认值形式注入到新数组后边。如:int[] 默认值是0,String[]默认值是null。
2、Arrays.copyOfRange(T[] original,int from,int to);
说明: 复制数组original的元素,复制内容是从 开始索引from 至结束索引 to(不包含结束索引值) 的元素,返回一个新的数组。
注意:第二个参数to,当输入to的数值大于原数组的长度;多出来的长度就是对应新数组多出来的元素,这些元素会以原数组对应的数据类型默认值形式注入到新数组后边。如:int[] 默认值是0,String[]默认值是null。
例1:Arrays.copyOf(T[] original,int newLength)方法
@Test
public void test5(){
String[] a = {"a","c","b","d"};
String[] b = {"大","小","多","少"};
/*将数组a,从索引0开始,长度是7,复制到数组b。如果要复制的长度大于原数组的长度,多出来的部分显示原数组数据类型的默认值。*/
b = Arrays.copyOf(a,7); //使用b接收是为了验证,是否会返回新的数组;如果会返回新的数组,则原数组b的内容会消失,否则不会消失。
System.out.println("原数组a长度"+a.length+",新数组b长度:"+b.length);//打印结果:原数组a长度4,新数组b长度:7
System.out.println("原数组a内容:"+Arrays.toString(a));//打印结果:原数组a内容:[a, c, b, d] ,发现原数组没有发生变化。
System.out.println("新数组b内容:"+Arrays.toString(b));//打印结果:新数组b内容:[a, c, b, d, null, null, null]。
/*如果原数组b的元素不存在,则代表变量b变成了新的数组,发现新数组显示内容是从原数组a复制的元素并且多出了3个元素显示为null。
*说明使用方法 Arrays.copyOf(a,7) 后返回了新的数组,并且多出的元素内容是原数组数组类型的默认值。
*/
}
例2、Arrays.copyOfRange(T[] original,int from,int to)方法
@Test
public void test6(){
String[] a = {"a","c","b","d"};
String[] b = {"大","小","多","少"};
/*将数组a,从开始索引1~结束索引7,的元素复制到数组b。如果要复制的长度大于原数组的长度,多出来的部分显示原数组数据类型的默认值。*/
b = Arrays.copyOfRange(a,1,7); //使用b接收是为了验证,是否会返回新的数组;如果会返回新的数组,则原数组b的内容会消失,否则不会消失。
System.out.println("原数组a长度"+a.length+",新数组b长度:"+b.length);//打印结果:原数组a长度4,新数组b长度:6
System.out.println("原数组a内容:"+Arrays.toString(a));//打印结果:原数组a内容:[a, c, b, d] ,发现原数组没有发生变化。
System.out.println("新数组b内容:"+Arrays.toString(b));//打印结果:新数组b内容:[c, b, d, null, null, null]。
/*如果原数组b的元素不存在,则代表变量b变成了新的数组,发现新数组显示内容是从原数组a复制的元素并且多出了3个元素显示为null。
*说明使用方法 Arrays.copyOfRange(a,1,7) 后返回了新的数组,并且多出的元素内容是原数组数组类型的默认值。
*/
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/15948.html