当前位置: 首页 > 编程笔记 >

浅谈Java中几个常用集合添加元素的效率

伯晨
2023-03-14
本文向大家介绍浅谈Java中几个常用集合添加元素的效率,包括了浅谈Java中几个常用集合添加元素的效率的使用技巧和注意事项,需要的朋友参考一下

初始化需要进行比较的集合,统一增加10万个元素,获取整个过程的执行时间。

1、List集合增加元素

private static void testList() {

  List<Integer> list = new ArrayList<Integer>();

  long startTime = System.currentTimeMillis(); // 获取开始时间
  for (int i = 0; i < 100000; i++) {

   list.add(i);

  }
  long endTime = System.currentTimeMillis(); // 获取结束时间

  System.out.println("List添加元素程序运行时间为:" + (endTime - startTime) + "ms"); // 输出程序运行时间

 }

程序输出:

List添加10万个元素程序运行时间为:8ms

2、Set集合增加元素

private static void testSet() {

  Set<Integer> set = new HashSet<Integer>();

  long startTime = System.currentTimeMillis(); // 获取开始时间
  for (int i = 0; i < 100000; i++) {

   set.add(i);

  }
  long endTime = System.currentTimeMillis(); // 获取结束时间

  System.out.println("Set添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms"); // 输出程序运行时间

 }

程序输出:

Set添加10万个元素程序运行时间为:17ms

3、LinkedList集合增加元素

private static void testLinkedList() {

  List<Integer> list = new LinkedList<Integer>();

  long startTime = System.currentTimeMillis(); // 获取开始时间
  for (int i = 0; i < 100000; i++) {

   list.add(i);

  }
  long endTime = System.currentTimeMillis(); // 获取结束时间

  // 输出程序运行时间
  System.out.println("LinkedList添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");

 }

程序输出:

LinkedList添加10万个元素程序运行时间为:8ms

4、TreeSet集合增加元素

private static void testTreeSet() {

  Set<Integer> set = new TreeSet<Integer>();

  long startTime = System.currentTimeMillis(); // 获取开始时间
  for (int i = 0; i < 100000; i++) {

   set.add(i);

  }
  long endTime = System.currentTimeMillis(); // 获取结束时间

  // 输出程序运行时间
  System.out.println("TreeSet添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");

 }

程序输出:

TreeSet添加10万个元素程序运行时间为:40ms

总结:在不考虑去重和排序的情况下,以上几个常用集合的执行效率排序为:ArrayList >= LinkedList > HashSet > TreeSet

5、HashMap集合增加元素

private static void testHashMap() {

  Map<Integer, Object> hashMap = new HashMap<Integer, Object>();

  long startTime = System.currentTimeMillis(); // 获取开始时间
  for (int i = 0; i < 100000; i++) {
   hashMap.put(i, "test");
  }

  long endTime = System.currentTimeMillis(); // 获取结束时间

  // 输出程序运行时间
  System.out.println("HashMap添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");

 }

程序输出:

HashMap添加10万个元素程序运行时间为:17ms

6、TreeMap集合增加元素

private static void testTreeMap() {
  
  Map<Integer, Object> treeMap = new TreeMap<Integer, Object>();

  long startTime = System.currentTimeMillis(); // 获取开始时间
  for (int i = 0; i < 100000; i++) {
   treeMap.put(i, "test");
  }

  long endTime = System.currentTimeMillis(); // 获取结束时间

  // 输出程序运行时间
  System.out.println("TreeMap添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");
 }

程序输出:

TreeMap添加10万个元素程序运行时间为:40ms

总结:在不考虑排序的情况下,HashMap的执行效率高于TreeMap:HashMap > TreeMap。

以上这篇浅谈Java中几个常用集合添加元素的效率就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • sadd key member 成功返回1,如果元素以及在集合中返回0,key对应的set不存在返回错误

  • 本文向大家介绍浅谈java常用的几种线程池比较,包括了浅谈java常用的几种线程池比较的使用技巧和注意事项,需要的朋友参考一下 1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过

  • zadd key score member 添加元素到集合,元素在集合中存在则更新对应score。

  • 问题内容: 在迭代集合时是否可以向集合中添加元素? 更具体地说,我想遍历一个集合,如果一个元素满足特定条件,我想向集合中添加一些其他元素,并确保也对这些添加的元素进行遍历。(我意识到这可能会导致循环终止,但是我很确定不会发生这种情况。) Sun 的Java教程建议不可能:“请注意,这是在迭代过程中修改集合的唯一安全方法;如果在迭代进行过程中对基础集合进行了其他任何修改,则行为未指定。” 因此,如果

  • 本文向大家介绍浅谈jQuery添加的HTML,JS失效的问题,包括了浅谈jQuery添加的HTML,JS失效的问题的使用技巧和注意事项,需要的朋友参考一下 如下图所示, 点击添加后,会新添加一行,但是二级联动就失效了, 正常情况下,使用的是bind绑定时间,而这里需要用live,设定时间为永久性存活。就OK了。 以上就是小编为大家带来的浅谈jQuery添加的HTML,JS失效的问题全部内容了,希望

  • 假设有几个数组: 我需要找出所有可能的元素集合(1,2,3,4,5...)中的每一个在至少两个阵列(A,B,C....)并以下列方式显示它们: 实际输入是包含字符串的文件。可能有数千个文件,每个文件可能包含一百多个密钥字符串。 我尝试了下面的方法:首先,我通过比较所有可能的数组对来生成元素集。然后,我试图通过使用逻辑生成其他集合——元素集合的交集在数组集合的并集中很常见。像这样: 从上面我们可以得