Java集合类性能对比实例
Java集合类是Java中非常重要的一部分,它们提供了存储和处理数据的多种方式。以下是一些常用的Java集合类及其性能对比的简单实例:
- ArrayList vs LinkedList
ArrayList
是基于动态数组实现的,适合快速随机访问。LinkedList
是基于双向链表实现的,适合频繁的插入和删除操作。```java// ArrayList性能测试 long startTime = System.nanoTime();
ArrayListarrayList = new ArrayList<>();
for (int i =0; i <10000; i++) {
arrayList.add(i);
}
for (int i =0; i <10000; i++) {
arrayList.get(i);
}
long endTime = System.nanoTime();
System.out.println(“ArrayList测试耗时: “ + (endTime - startTime) + “ns”);
// LinkedList性能测试 startTime = System.nanoTime();
LinkedList
for (int i =0; i <10000; i++) {
linkedList.add(i);
}
for (int i =0; i <10000; i++) {
linkedList.get(i);
}
endTime = System.nanoTime();
System.out.println(“LinkedList测试耗时: “ + (endTime - startTime) + “ns”);
```2. HashSet vs TreeSet
HashSet
是基于哈希表实现的,适合快速插入、删除和查找操作。TreeSet
是基于红黑树实现的,适合有序数据的插入、删除和查找操作。```java// HashSet性能测试 startTime = System.nanoTime();
HashSethashSet = new HashSet<>();
for (int i =0; i <10000; i++) {
hashSet.add(i);
}
for (int i =0; i <10000; i++) {
hashSet.contains(i);
}
endTime = System.nanoTime();
System.out.println(“HashSet测试耗时: “ + (endTime - startTime) + “ns”);
// TreeSet性能测试 startTime = System.nanoTime();
TreeSet
for (int i =0; i <10000; i++) {
treeSet.add(i);
}
for (int i =0; i <10000; i++) {
treeSet.contains(i);
}
endTime = System.nanoTime();
System.out.println(“TreeSet测试耗时: “ + (endTime - startTime) + “ns”);
```3. HashMap vs TreeMap
HashMap
是基于哈希表实现的,适合快速插入、删除和查找操作。TreeMap
是基于红黑树实现的,适合有序数据的插入、删除和查找操作。```java// HashMap性能测试 startTime = System.nanoTime();
HashMaphashMap = new HashMap<>();
for (int i =0; i <10000; i++) {
hashMap.put(i, “Value” + i);
}
for (int i =0; i <10000; i++) {
hashMap.get(i);
}
endTime = System.nanoTime();
System.out.println(“HashMap测试耗时: “ + (endTime - startTime) + “ns”);
// TreeMap性能测试 startTime = System.nanoTime();
TreeMap
for (int i =0; i <10000; i++) {
treeMap.put(i, “Value” + i);
}
for (int i =0; i <10000; i++) {
treeMap.get(i);
}
endTime = System.nanoTime();
System.out.println(“TreeMap测试耗时: “ + (endTime - startTime) + “ns”);
```这些测试可以帮助你了解不同集合类在不同操作下的性能表现。实际应用中,选择哪种集合类取决于你的具体需求,如数据的大小、操作的类型等。
还没有评论,来说两句吧...