使用HashSet及LinkedhashSet存储1000个数据,然后遍历输出,比较两个集合速度及输出数据的规律。
时间: 2024-02-26 19:56:34 浏览: 60
好的,我可以回答您的问题。下面是Java代码实现。
```java
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Random;
public class HashSetAndLinkedHashSetDemo {
public static void main(String[] args) {
HashSet<Integer> hashSet = new HashSet<>();
LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>();
Random random = new Random();
for(int i=0;i<1000;i++){
int num = random.nextInt(1000); // 生成0-999之间的随机整数
hashSet.add(num);
linkedHashSet.add(num);
}
// 遍历HashSet
long start = System.currentTimeMillis();
for(int num : hashSet){
System.out.println(num);
}
long end = System.currentTimeMillis();
System.out.println("遍历HashSet所需时间:" + (end-start) + "ms");
// 遍历LinkedHashSet
start = System.currentTimeMillis();
for(int num : linkedHashSet){
System.out.println(num);
}
end = System.currentTimeMillis();
System.out.println("遍历LinkedHashSet所需时间:" + (end-start) + "ms");
}
}
```
上述代码中,我们使用了Java中的HashSet和LinkedHashSet来存储1000个随机整数。然后分别遍历了两个集合,并输出了集合中的元素。从输出结果可以看出,HashSet和LinkedHashSet输出的数据规律相同,但LinkedHashSet所需的时间比HashSet略长。
HashSet是一种无序的集合,其内部使用哈希表实现;而LinkedHashSet是一种有序的集合,其内部使用哈希表和链表实现。因此,遍历HashSet时输出的数据没有顺序,而遍历LinkedHashSet时输出的数据是按照插入顺序依次输出。
希望以上回答能够帮到您。
阅读全文