集合:
集合类可以分为两类:一类是实现Collection接口;另一类实现Map接口。
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。
Map接口提供key(键)到value(值)的映射,Map中的key不要求有序,不允许重复。
Collection:
List(列表) 有序,可重复
- ArrayList:
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高。
- Vector:
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程安全,效率低。
- LinkedList:
优点: 底层数据结构是链表,查询慢,增删快。
缺点: 线程不安全,效率高。
Set(集)唯一,无序(插入顺序)
- HashSet:
底层数据结构是哈希表;存取和查找性能好;集合元素值可以是 null。
LinkedHashSet是 HashSet 的一个子类,具有 HashSet 的特性。底层数据结构是链表和哈希表,由链表维护元素有序,元素的顺序与添加顺序一致。由哈希表保证元素唯一。
- TreeSet
底层数据结构是二叉树,是 SortedSet 接口的实现类,可以保证元素处于排序状态。TreeSet 支持两种元素排序:自然排序、自定义对象定制排序。
List表达一个有序的集合,List中的每个元素都有索引,使用此接口能够准确的控制每个元素插入的位置。用户也能够使用索引来访问List中的元素,List类似于Java的数组。
Set接口的特点是不能包含重复的元素。对Set中任意的两个元素element1和element2都有elementl.equals(element2)= false。另外,Set最多有一个null元素。此接口模仿了数学上的集合概念。
Map:
迭代器(iterable):
Iterator接口是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。
迭代:即Collection集合元素的通用获取方式。
Iterator接口的常用方法如下:
- public E next():返回迭代的下一个元素。
- public boolean hasNext():如果仍有元素可以迭代,则返回 true。
简易版迭代器
简称forEach循环又称增强for循环
格式:for(Object obj,迭代对象) foreach循环删除元素则会报错