当前位置:   article > 正文

List、Map、Set三个接口存取元素时,各有什么特点?不同实现,不同特点,别再一概而论。_list map set存取元素的特点

list map set存取元素的特点

存放时:

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(){}),进行迭代。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/325642?site
推荐阅读
相关标签
  

闽ICP备14008679号