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