数组的插入与删除
思路:
删除:在数组中找到指定位置,从当前元素的后一个元素开始,每一个元素后移 插入:首先创建一个新数组,长度为原数组+1,把指定位置之前的元素赋值到新数组中,然后从指定位置开始,将原数组中的元素赋值到新数组中,新数组从pos+1开始接收新值,最后将插入元素赋给新数组[pos]
public class chap04_Array {
static int [ ] a = { - 1 , 3 , 5 , 24 , 7 , 12 } ;
static int index = a. length;
public static void main ( String[ ] args) {
delete ( 2 ) ;
insert ( 0 , 13 ) ;
}
public static void delete ( int pos) {
for ( int i = 0 ; i < a. length; i++ ) {
if ( i == pos && pos< a. length- 1 ) {
System. arraycopy ( a, i+ 1 , a, i, a. length- i- 1 ) ;
a[ a. length- 1 ] = 0 ;
} else if ( pos == a. length- 1 ) {
a[ pos] = 0 ;
}
}
for ( int i = 0 ; i < a. length; i++ ) {
System. out. print ( a[ i] + ( i== a. length- 1 ? "\n" : "," ) ) ;
}
}
public static void insert ( int pos, int value) {
int [ ] newArr = new int [ a. length+ 1 ] ;
for ( int i = 0 ; i < a. length; i++ ) {
if ( pos == i && pos < newArr. length- 1 ) {
for ( int j = 0 ; j < pos; j++ ) {
newArr[ j] = a[ j] ;
}
for ( int j = pos; j < a. length; j++ ) {
newArr[ j+ 1 ] = a[ j] ;
}
newArr[ pos] = value;
} else if ( pos == a. length) {
for ( int j = 0 ; j < a. length; j++ ) {
newArr[ j] = a[ j] ;
}
newArr[ newArr. length- 1 ] = value;
}
}
for ( int i = 0 ; i < newArr. length; i++ ) {
System. out. print ( newArr[ i] + ( i== newArr. length- 1 ? "\n" : "," ) ) ;
}
}