Java:集合类(List、Set、Map)

一、集合器的继承关系

Map
Java.lang.Object
HashMap
TreeMap
Collection
Set
HashSet
TreeSet
List
ArrayList
LinkedList
Vector

二、Collection接口

Collection是一个接口不能直接只用,但是提供了添加元素、删除元素、管理数据的方法。

方法 功能描述
add(E e) 将指定的对象添加到集合中
Remove(Object o) 将指定的对象从集合中移除
isEmpty() 判断该集合是否为空,为空返回true,反之为false
iterator() 迭代器,可以用于遍历集合中的对象
size() 返回int类型,为该集合上的元素个数

接下来展示一下迭代器的使用

public static void main(String[] args){
    
    
	Collection<String> collection = new ArrayList<>();
	collection.add(
	Iterator<String> it = collection.iterator();//it的类型要根据Collection里存放的类型而定
	while(it.hasNext()){
    
    
		String str = (String)it.next();//Iterator的next()方法返回值是Object类型,所以要强制转换一下
		System.out.println(str);
	}
}

三、List集合

1、List接口

List集合中的元素允许重复存放(类似于数组)、元素插入List的顺序就是元素在集合中的顺序,用户可以用索引来访问集合中的元素。

List中除了Collection接口功能,还有两个重要的特殊功能:

get(int index)//获得指定索引位置的元素
set(int index, Object obj)//将集合中指定index位置上的元素换成指定的obj

2、List接口实现类

(1)ArrayList

List<E> list = new ArrayList<>();

ArrayList实现了可变数组,可以保存所有元素(包括null)。适合查找,可以根据索引位置快速访问元素。不适合插入对象或删除对象。

(2)LinkedList

List<E> list = new LinkedList<>();

LinkedList采用链表结构保存对象。适合插入或删除对象,但是查询效率比较低。

(3)Vector

List<E> list = new Vector<>();

作为List接口的古老实现类;线程安全,效率低。

四、Set集合

1、HashSet

HashSet<E> hash = new HashSet<>();

HashSet实现了Set接口,由哈希表(实际上是一个HashMap实例)支持。不保证Set迭代顺序,允许使用null元素。

2、TreeSet

TreeSet<E> tree = new TreeSet<>();

TreeSet不仅实现了Set接口,还实现了java.util.SortedSet接口,因此,TreeSet实现的Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较器递增排序,即可以通过比较器对TreeSet类实现Set集合中的对象进行排序。
下表为TreeSet比Collection新增的方法:

方法 功能描述
first() 返回set中的第一个元素
last() 返回set中最后一个元素
comparator() 返回此set中元素进行排序的比较器,如果是自然排序,则返回null
headSet(E toElement) 返回roElement(不包含)之前所有的对象组成的新set集合
tailSet(E fromElement) 返回roElement(包含)之后所有的对象组成的新set集合
subSet(E fromElement, E toElement) 返回由fromElement(包含)到toElement(不包含)之间的元素组成的新set集合

五、Map集合

1、Map接口

Map没有继承Collection接口,其提供的是key到value的映射。Map中相同的key只能映射一个value。
Map中常用的方法如下:

方法 功能描述
put(K key, V value) 向集合添加(key,value)映射关系
containsKey(Object key) 返回一个boolean类型,如果集合中存在key则返回true,否则返回false
containsValue(Object value) 返回一个boolean类型,如果集合中存在value则返回true,否则返回false
get(Object key) 如果集合中存在key则返回key对应的value值,否则返回null
KeySet() 返回原集合中所有Key组成的新的集合
values() 返回原集合中所有Value组成的新的集合

猜你喜欢

转载自blog.csdn.net/UncleBlain/article/details/108900342