ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

List、Map、Set三个接口存取元素时,各有什么特点?

2021-09-23 11:02:29  阅读:115  来源: 互联网

标签:Map Set 迭代 元素 List 指定 存放 键值


存放时:

1、List存放元素可以重复,存放元素是有序的(按插入顺序)。

  • ArrayList、vector(线程安全),根据特定的索引来存放元素;
  • LinkedList,是队列的实现,元素总是存于尾部。

方法:add(E e) :将指定的元素添加到此列表的尾部。add(int index, E element) :将指定的元素插入此列表中的指定位置。offer(E e) :将指定元素添加到此列表的末尾(最后一个元素)等。

2、Set 存放元素不可重复。

  • HashSet存放元素是无序的,根据元素hashcode存放元素;
  • LinkedHashSet存放元素是有序的,根据元素hashcode存放元素,但在HashSet的基础上同时使用链表,保存插入顺序;
  • TreeSet存放元素是有序的,根据指定数据内容存放,利用红黑树进行排序。

方法:add(E e):如果此 set 中尚未包含指定元素,则添加指定元素等。
3、Map存放键值对,键不可重复,值可重复。

  • HashMap、HashTable(线程安全)存放元素无序,根据键的hashcode存放键值对;
  • LinkedHashMap存放键值对有序,根据键的hashcode存放键值对,但在HashMap的基础上同时使用链表,保存插入顺序;
  • TreeMap存放键值对是有序的,根据键的指定数据内容存放,利用红黑树进行排序。

方法:put(K key, V value) :在此映射中关联指定值与指定键等。

取出时:

1、List取出元素
(1)get(index)、poll()、peek()等方法;
(2)for循环;
(3)foreach循环;
(4)Iterator迭代器迭代。
2、Set取出元素
(1)foreach循环;
(2)Iterator迭代器迭代。
3、Map取出元素
(1)get(key)方法;
(2)entrySet()获得Set<Map.Entry<K,V>>,然后进行Set集合迭代;
(3)keySet()获得Set,然后结合get(key)方法,进行Set集合迭代;
(4).foreach(new BiConsumer(){}),进行迭代。

标签:Map,Set,迭代,元素,List,指定,存放,键值
来源: https://blog.csdn.net/Lanerxx/article/details/120430536

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有