Vector, ArrayList, LinkedList 의 삭제 효율 비교
package list;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
public class listT1 {
public static void main(String[] args) {
List vector = new Vector();
List arrayList = new ArrayList();
List linkedList = new LinkedList();
int listSize = 50000;
int searchOrRemoveSize = 2000;
long vectorStartTime = 0;
long vectorEndTime = 0;
long arrayListStartTime = 0;
long arrayListEndTime = 0;
long linkedListStartTime = 0;
long linkedListEndTime = 0;
String[] listType = { "vector", "arrayList", "linkedList" };
long[][] listData = new long[3][4];
/** start */
vectorStartTime = System.currentTimeMillis();
for (int i = 0; i < listSize; i++) {
vector.add(i);
}
vectorEndTime = System.currentTimeMillis();
listData[0][0] = vectorEndTime - vectorStartTime;
arrayListStartTime = System.currentTimeMillis();
for (int i = 0; i < listSize; i++) {
arrayList.add(i);
}
arrayListEndTime = System.currentTimeMillis();
listData[1][0] = arrayListEndTime - arrayListStartTime;
linkedListStartTime = System.currentTimeMillis();
for (int i = 0; i < listSize; i++) {
linkedList.add(i);
}
linkedListEndTime = System.currentTimeMillis();
listData[2][0] = linkedListEndTime - linkedListStartTime;
/** end */
/** start */
vectorStartTime = System.currentTimeMillis();
for (int i = 0; i < listSize; i++) {
vector.add(0, i);
}
vectorEndTime = System.currentTimeMillis();
listData[0][1] = vectorEndTime - vectorStartTime;
arrayListStartTime = System.currentTimeMillis();
for (int i = 0; i < listSize; i++) {
arrayList.add(0, i);
}
arrayListEndTime = System.currentTimeMillis();
listData[1][1] = arrayListEndTime - arrayListStartTime;
linkedListStartTime = System.currentTimeMillis();
for (int i = 0; i < listSize; i++) {
linkedList.add(0, i);
}
linkedListEndTime = System.currentTimeMillis();
listData[2][1] = linkedListEndTime - linkedListStartTime;
/** end */
/** start */
vectorStartTime = System.currentTimeMillis();
for (int i = 0; i < searchOrRemoveSize; i++) {
vector.get(i);
}
vectorEndTime = System.currentTimeMillis();
listData[0][2] = vectorEndTime - vectorStartTime;
arrayListStartTime = System.currentTimeMillis();
for (int i = 0; i < searchOrRemoveSize; i++) {
arrayList.get(i);
}
arrayListEndTime = System.currentTimeMillis();
listData[1][2] = arrayListEndTime - arrayListStartTime;
linkedListStartTime = System.currentTimeMillis();
for (int i = 0; i < searchOrRemoveSize; i++) {
linkedList.get(i);
}
linkedListEndTime = System.currentTimeMillis();
listData[2][2] = linkedListEndTime - linkedListStartTime;
/** end */
/** start */
vectorStartTime = System.currentTimeMillis();
for (int i = 0; i < searchOrRemoveSize; i++) {
vector.remove(i);
}
vectorEndTime = System.currentTimeMillis();
listData[0][3] = vectorEndTime - vectorStartTime;
arrayListStartTime = System.currentTimeMillis();
for (int i = 0; i < searchOrRemoveSize; i++) {
arrayList.remove(i);
}
arrayListEndTime = System.currentTimeMillis();
listData[1][3] = arrayListEndTime - arrayListStartTime;
linkedListStartTime = System.currentTimeMillis();
for (int i = 0; i < searchOrRemoveSize; i++) {
linkedList.remove(i);
}
linkedListEndTime = System.currentTimeMillis();
listData[2][3] = linkedListEndTime - linkedListStartTime;
/** end */
for (int i = 0; i < listData.length; i++) {
long[] arr = listData[i];
System.out.print(listType[i] + " (" + listSize + ")、 ("
+ listSize + ")、 (" + searchOrRemoveSize + ")、 ("
+ searchOrRemoveSize + ") ( ):");
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j] + " ");
}
System.out.println();
}
/**
* , :
* vector (100000)、 (100000)、 (5000)、 (5000) ( ):17 13638 0 895
* arrayList (100000)、 (100000)、 (5000)、 (5000) ( ):25 14224 0 898
* linkedList (100000)、 (100000)、 (5000)、 (5000) ( ):44 16 36 71
*
*
* vector (50000)、 (50000)、 (2000)、 (2000) ( ):7 3443 0 183
* arrayList (50000)、 (50000)、 (2000)、 (2000) ( ):7 3507 0 187
* linkedList (50000)、 (50000)、 (2000)、 (2000) ( ):8 43 6 11
*
*/
}
}
작업 이 한 열 데이터 뒤에 데 이 터 를 추가 하 는 것 이지 앞 이나 중간 (집합 용량 1 / 5 정도) 이 아니 라 그 중의 요 소 를 무 작위 로 방문 해 야 할 때 Vector (스 레 드 안전) 를 사용 하면 Array List 는 비교적 좋 은 성능 을 제공 합 니 다.
한 열 데이터 의 앞 이나 중간 (집합 용량 1 / 5 정도) 에 데 이 터 를 추가 하거나 삭제 하고 그 중의 요 소 를 순서대로 방문 할 때 LinkedList 를 사용 해 야 합 니 다.
다음으로 전송:https://www.cnblogs.com/wcj112/p/3573794.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.