62,614
社区成员
发帖
与我相关
我的任务
分享
int capacity = 100000, delCount = 10000;
List<Integer> a1List = new ArrayList<Integer>(),
a2List = new ArrayList<Integer>(),
a3List = new ArrayList<Integer>(),
l1List = new LinkedList<Integer>(),
l2List = new LinkedList<Integer>(),
l3List = new LinkedList<Integer>();
for( int i = 0; i < capacity; i++ ) {
a1List.add( i );
a2List.add( i );
a3List.add( i );
l1List.add( i );
l2List.add( i );
l3List.add( i );
}
long start = 0, duration = 0;
start = System.currentTimeMillis();
for( int i = 0; i < delCount; i++ ) {
a1List.remove( capacity - i - 1 );
}
duration = System.currentTimeMillis() - start;
System.out.println( "ArrayList尾部删除耗时:" + duration + "ms");
start = System.currentTimeMillis();
for( int i = 0; i < delCount; i++ ) {
l1List.remove( capacity - i - 1 );
}
duration = System.currentTimeMillis() - start;
System.out.println( "LinkedList尾部删除耗时:" + duration + "ms");
start = System.currentTimeMillis();
for( int i = 0; i < delCount; i++ ) {
a2List.remove( ( capacity - i - 1 ) / 2 );
}
duration = System.currentTimeMillis() - start;
System.out.println( "ArrayList中部删除耗时:" + duration + "ms" );
start = System.currentTimeMillis();
for( int i = 0; i < delCount; i++ ) {
l2List.remove( ( capacity - i -1 ) / 2 );
}
duration = System.currentTimeMillis() - start;
System.out.println( "LinkedList中部删除耗时:" + duration + "ms" );
start = System.currentTimeMillis();
for( int i = 0; i < delCount; i++ ) {
a3List.remove( 0 );
}
duration = System.currentTimeMillis() - start;
System.out.println( "ArrayList首部删除耗时:" + duration + "ms" );
start = System.currentTimeMillis();
for( int i = 0; i < delCount; i++ ) {
l3List.remove( 0 );
}
duration = System.currentTimeMillis() - start;
System.out.println( "LinkedList首部删除耗时:" + duration + "ms" );