java数组复制——通过java.util.Arrays的方法

导读:本篇文章讲解 java数组复制——通过java.util.Arrays的方法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!