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

本文详细介绍了Java集合框架中List、Set和Map的区别及使用方法。包括各种集合的特点、存储方式和常见操作,如添加、获取元素等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存放时:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值