[Java]关于用数组实现队列的一个小练习
本人刚开始接触编程的一个小练习,里面有很多不足之处,大家有意见尽管说
数组实现队列的功能
import java. util. Arrays;
public class Arraylist_impl {
public static void main ( String[ ] args) {
Arraylist_impl list = new Arraylist_impl ( ) ;
list. add ( 1 ) ;
list. add ( 2 ) ;
list. add ( 3 ) ;
list. add ( 4 ) ;
list. add ( 5 ) ;
list. add ( "hello" ) ;
list. add ( 0 , 0 ) ;
list. set ( 0 , 8 ) ;
list. remove ( "hello" ) ;
System. out. println ( list. contains ( 0 ) ) ;
System. out. println ( list) ;
}
private int size = 0 ;
private Object[ ] arr = new Object [ 4 ] ;
public Arraylist_impl ( ) {
}
public void add ( Object o) {
size++ ;
if ( size > arr. length) {
Object[ ] temp = new Object [ arr. length * 2 ] ;
for ( int i = 0 ; i < arr. length; i++ ) {
temp[ i] = arr[ i] ;
}
temp[ size - 1 ] = o;
arr = temp;
} else {
arr[ size - 1 ] = o;
}
}
@Override
public String toString ( ) {
Object[ ] array = new Object [ size] ;
for ( int i = 0 ; i < size; i++ ) {
array[ i] = arr[ i] ;
}
return Arrays. toString ( array) ;
}
public void add ( int index, Object o) {
size++ ;
if ( size > arr. length) {
Object[ ] temp = new Object [ arr. length * 2 ] ;
for ( int i = 0 ; i < index; i++ ) {
temp[ i] = arr[ i] ;
}
temp[ index] = o;
for ( int i = 0 ; i < ( arr. length - index) ; i++ ) {
temp[ ++ index] = arr[ index++ ] ;
}
arr = temp;
} else {
for ( int i = size - 1 , b; i > index; i-- ) {
b = i - 1 ;
arr[ i] = arr[ b] ;
}
arr[ index] = o;
}
}
public void clear ( ) {
arr = new Object [ 4 ] ;
size = 0 ;
}
public boolean contains ( Object o) {
for ( int i = 0 ; i < arr. length; i++ ) {
if ( o. equals ( arr[ i] ) ) {
return true ;
}
}
return false ;
}
public Object get ( int index) {
return arr[ index] ;
}
public int indexOf ( Object o) {
for ( int i = 0 ; i < arr. length; i++ ) {
if ( o. equals ( arr[ i] ) )
return i;
}
return - 1 ;
}
public boolean isEmpty ( ) {
return size == 0 ;
}
public int lastIndexOf ( Object o) {
for ( int i = arr. length; i > 0 ; i-- ) {
if ( o. equals ( arr[ i - 1 ] ) )
return i - 1 ;
}
return - 1 ;
}
public boolean remove ( Object o) {
for ( int i = 0 ; i < arr. length; i++ ) {
if ( o. equals ( arr[ i] ) )
{
remove ( i) ;
return true ;
}
}
return false ;
}
public boolean remove ( int index) {
if ( size != 0 ) {
for ( int i = 0 , b; i < ( arr. length - index - 1 ) ; i++ ) {
b = index + 1 ;
arr[ index ++ ] = arr[ b++ ] ;
}
size -- ;
return true ;
}
else
return false ;
}
public int size ( ) {
return size;
}
public Object set ( int index, Object o) {
return arr[ index] = o;
}
}
alse;
}
public int size ( ) {
return size;
}
public Object set ( int index, Object o) {
return arr[ index] = o;
}
}