泛型的概念:
泛型是 Java SE5 出现的新特性,泛型的本质是类型参数化或参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。
集合的定义:
集合是指集中存放一组对象的一个对象。集合相当于一个容器,提供了保存、获取和操作其他元素的方法。集合能够帮助Java程序员轻松地管理对象。Java集合框架由两种类型构成,一个是Collection;另一个是Map。Collection对象用于存放一组对象,Map对象用于存放一组“关键字/值”的对象。
基本操作:
实现基本操作的方法有添加元素,删除指定元素,返回集合中元素的个数,返回集合的迭代器对象。
1.boolean add(E e) : 向集合中添加元素e。
2.boolean remove(Object o) : 从集合中删除指定的元素o。
3.boolean contains(Object o) : 返回集合中是否包含指定的元素o。
4.boolean isEmpty() : 返回集合是否为空,即不包含元素。
5.int size() : 返回集合中包含的元素个数。
6.Iterator iterator() : 返回包含所有元素的迭代器对象。
7.default void forEach(Consumer<? super T>action) : 从父接口继承的方法,在集合的每个元素上执行指定的操作。
collection接口
前面提到,集合可以分为 Collection 和 Map 两类,现在开始学习 Collection。Collection 是一个顶层接口,一些 Collection 接口的实现类允许有重复的元素,而另一些则不允许;一些 Collection 是有序的,而另一些则是无序的。
JDK 不提供 Collection 接口的任何直接实现类,而是提供了更具体的子接 口,如 Set 接口和 List 接口。这些子接口继承 Collection 接口的方法,然后再对 Collection 接口从不同角度进行重写或扩充。
List接口及实现类:
List接口是Collection的子接口,实现一种线性表的数据结构。存放在List中的所有元素都有一个下标(从0开始),可以通过下标访问List中的元素。List中可以包含重复元素。List从Collection接口继承的操作于Collection接口类似,但有的操作有些不同。例如,remove()方法总是从线性表中删除指定首次出现的元素;add()和addAll()方法总是将元素插入到线性表的末尾。
ArrayList : 底层数据结构是数组,允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。线程不安全
LinkedList : 底层数据结构是链表。线程不安全,对顺序访问进行了优化,向List中间插入与删除快。随机访问则相对较慢。
Vector: 底层数据结构是数组。线程安全。随机访问快,向List中间插入与删除慢。
Map接口及实现类
Map:双列集合类的根接口,这种接口的实现类专门用于存储一系列键值对。在 Map 实现类中,key 不允许重复,而 value 不做要求。
常用的方法:
public V put(K key, V value):把指定的键与指定的值添加到Map集合中。
public V remove(Object key):把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
public V get(Object key):根据指定的键,在Map集合中获取对应的值。
boolean containsKey(Object key):判断集合中是否包含指定的键。
public Set<K> keySet():获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet():获取到Map集合中所有的键值对对象的集合(Set集合)。
Map接口的常用实现类:Hashmap、TreeMap、Hashtable。