java集合框架类:
从上图中可以知道集合框架中常用的接口有:Collection、List、Map、Set以及Set接口的子接口SortedSet和Map接口的子接口SortedMap.这里就简单的讲下Set、List和Map三个接口。
一、Set接口
Set接口继承自Collection接口,Set接口不允许将两个相同的对象放入其中,该接口主要实现类有:HashSet类、LinkedHashSet类、SortedSet接口实现类——TreeSet类。
Set接口的主要方法及其功能
方法 | 功能 |
boolean add (E e) | 将对象添加到集合中,参数e是要添加的对象 |
int size() | 返回集合中元素的个数 |
boolean isEmpty() | 判断集合是否为空,为空则返回false,否则返回true |
boolean contains (Object o)
| 判断集合中是否存在和o相等的元素,如果有则返回true,否则返回false |
Iterator<E> iterator() | 返回Iterator类的对象,主要在遍历集合时使用 |
boolean remove (Object o) | 从集合中删除元素,参数o为要删除的元素 |
void clear() | 删除集合中的所有元素,清空集合 |
当要遍历集合时,首先应该获得集合的迭代器,即调用集合对象上的iterator()方法,该方法返回java.util.Iterator类的对象,并通过hashNext()方法判断集合中是否还有元素,然后再调用next()方法取出集合中的元素对集合进行遍历。
二、List接口
List接口同样也继承自Collection接口,与Set接口不同的是,List允许将两个相同的对象放入其中,并且可以根据索引插入和访问列表中的元素。
List接口的主要实现类有:LinkedList类、Vector类、ArrayList类。
List接口的主要方法及其功能
方法 | 功能 |
boolean add(E e) | 将对象添加到列表中,参数e是要添加的对象 |
Object get(int index) | 返回List中指定位置的元素 |
int indexof(Object o) | 返回第一个出现元素o的位置,否则返回-1 |
int lastIndexOf(Object o) | 返回最后一个出现元素o的位置,否则返回-1 |
Object set(int index,Object element) | 用元素element取代位置index上的元素,并且返回旧的元素 |
int size() | 返回列表中元素的个数 |
boolean isEmpty() | 判断列表是否为空,如果为空则返回false,否则返回true |
boolean contains(Object o) | 判断列表中是否存在和o相等的元素,如果有则返回true,否则返回false |
ListIterator listIterator() | 返回一个列表迭代器,用来访问列表中的元素 |
Object remove(int index) | 删除指定位置上的元素 |
void clear() | 删除列表中的所有元素 |
可以看出List接口中的方法和Set接口中的功能几乎一样,因为它们都继承自Collection接口,但是不同的是List关心索引。
当要遍历集合时,可以跟Set集合一样先得到迭代器,然后在去取得集合中的元素,也可以先得到通过调用size()方法,得到列表中元素的个数,再使用for循环进行遍历。
三、Map接口
Map接口和前面介绍的List和Set接口不同的是,Map不是继承自Collection接口,Map接口用于维护键/值对,该接口描述了不能重复的键到值的映射。其中,键和值都是对象。
Map接口主要的实现类有:LinkedHashMap类、HashTable类、HashMap类和SortedMap子接口的实现类——TreeMap类。
Map接口的主要方法及其功能
方法 | 功能 |
Object put(Object key,Object value) | 将互相关联的一个关键字和一个值放入该映像,如果该关键字已经存在,那么与关键字相关的新值将取代旧值。方法返回关键字的旧值,如果关键字原先不存在,则返回null |
Object get(Object key) | 获得与关键字key相关的值,并且返回与关键字key相关的对象,如果没有在该映像中找到关键字,则返回null |
boolean containsKey(Object key) | 判断映像中是否存在键为key的值 |
int size() | 返回当前映像中的数量 |
boolean isEmpty() | 判断当前映像中是否有任何映射 |
Object remove(Object key) | 从映像中删除与key相关的映射 |
void clear() | 从映像中删除所有映射 |
Set keySet() | 返回映像中所有关键字的视图集 |
Set entrySet() | 返回Map.Entry对象的视图集,即映像中的关键字/值对 |
boolean containsValue(Object value) | 判断映像中是否存在值value |
Map集合遍历时,比Set要复杂点,首先要通过调用keySet()方法得到键的集合(Set),在对键的集合进行遍历(就是Set的遍历方法)。