JAVA 数组复制的方法
1. 使用for循环遍历,效率最低
int [ ] arr = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;
int [ ] arr1 = new int [ arr. length] ;
for ( int i = 0 ; i < arr. length ; i++ ) {
arr1[ i] = arr[ i] ;
}
System. out. println ( Arrays. toString ( arr1) ) ;
2.使用Arrays中提供的方法
2.1 copyof() 效率次于第三种
public static int [ ] copyOf ( int [ ] original, int newLength)
int [ ] arr = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;
int [ ] arr2 = Arrays. copyOf ( arr, 3 ) ;
System. out. println ( Arrays. toString ( arr2) ) ;
2.2 copyOfRange() 复制指定长度的数组
public static < T> T[ ] copyOfRange ( T[ ] original, int from, int to)
int [ ] arr = { 2 , 5 , 4 , 6 , 8 , 7 } ;
int [ ] arr2 = Arrays. copyOfRange ( arr, 1 , 7 ) ;
System. out. println ( Arrays. toString ( arr2) ) ;
3. System.arraycopy() 效率最高
public static void arraycopy ( Object src, int srcPos, Object dest, int destPos, int length)
int [ ] arr = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;
int [ ] arr3= new int [ arr. length] ;
System. arraycopy ( arr, 1 , arr3, 2 , 5 ) ;
System. out. println ( Arrays. toString ( arr3) ) ;