JAVA中集合类概述

目录

前言

一.集合类概述

二、Collection

1.List实现

2.set实现

三.Map 

总结


前言

这篇文章是根据张席主编的《JAVA语言程序设计教程》提炼出来的一些JAVA中集合的知识,还会加上我在编程过程中的遇到的问题和使用心得,如有错误欢迎指正。

一.集合类概述

JAVA中的集合类可以分为两大类: 一类是实现Collection接口;另一类是实现Map接口。Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element)。Map没有继承Collection接口,与Collection是并列关系。Map提供键(Key)到值(Value)的映射。一个Map中不能包含相同的键,每个键只能映射一个值。

二、Collection

Collection中有两个重要的子接口:List和Set。下面对这两个子接口进行介绍。

1.List实现

List表达的是一个有序集合,可重复,类似于数组。 在List实现中,最常用的是ArrayList和LinkedList这两个类。

ArrayList实现了大小可变的数组。读取元素时速度比较快。多线程时不安全。常用的方法如下:

 

方法 功能描述
boolean add(E e) 将指定的元素添加到列表尾部
void add(int index,E e) 将指定的元素添加到指定的位置
void clear() 移除次列表中所有元素
Object clone() 克隆列表
boolean contains(Object o) 如果列表中包含指定的元素,返回true
void ensureCapacity(int minCapacity) 列表的容量太小的话就增加次列表的容量
E get(int index) 返回该列表指定位置上的元素
int indexOf(Object o) 返回此列表首次出现指定元素的下标,如果此列表不包含该元素,则返回-1
boolean isEmpty() 空列表则返回true
int lastIndexOf(Object o) 返回此列表最后一次出现指定元素的下标,如果此列表不包含该元素,则返回-1
E remove(int index)  移除指定位置上的元素
boolean remove(Object o) 移除首次出现的指定元素(如果存在)
void removeRange(int idx1,int idx2) 删除idx1到idx2左闭右开的元素。idx1删除,idx2不删除
E set(int index,E element) 用指定元素代替指定位置上的元素
int size() 返回此列表中的元素个数
Object[] toArray() 按适当顺序(从第一个到最后一个元素)返回包含此列表中的所有元素的数组

注意,ArrayList的下标是从0开始的,所以使用有涉及到位置的方法时要小心不要弄错位置了; 

LinkedList与ArrayList用法类似,如需频繁地在头部添加元素或频繁的删除元素,用LinkedList效率高。它还可以储存不是基本数据类型的对象。LinkedListArrayList多了七个方法。clone()、addFirst()、getFirst()、removerFirst()、addLast()、getLast()和removeLast();

2.set实现

不包含重复的元素,无序的,类似于数学上集合的概念。在Set实现中,最常用的是HashSet、TreeSet和LinkedHashSet这三个类。HashSet比TreeSet快,一般都用HashSet。LinkedHashSet介于HashSet和TreeSet之间。

HashSet不保证set里面元素的顺序,也不保证元素是顺序不会发生变化,不允许重复的元素出现,类似于数学上的集合。两个HashSet之间可以使用addAll()方法进行并运算,使用retainAll()方法进行交运算,使用removeAll()方法进行差运算。没有get()方法,只能通过迭代器方法来获取。

TreeSet是一个有序集合,使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序。没有get()方法,只能通过迭代器方法来获取。

三.Map 

Map接口的视线中有三个常用的类:HashMap、TreeMap和LinkedHashMap.HashMap速度快,TreeMap可排序,LinkedHashMap介于两者之间。

方法 功能描述
V put(K key,V value) 添加元素
Vget(Object key) 返回key对应的value
boolean containsKey() 若包含key,则返回true
boolean containsValue() 若包含value,则返回true

总结

 这些都是集合最基础的概念和使用方法,需要掌握好。

你可能感兴趣的:(Java,java,学习)