Java中的集合类
Java集合类与数组的区别:Java的集合类的长度是动态的,数组则是固定长度的。
Java集合类与数组的联系:使用相应的toArray()和Arrays.asList()方法可以互相转换。
首先来看看Java集合框架中的接口:
Collection接口实现类中存放的是元素和Map接口实现类中存放的是键值对。
Set接口和List接口:Set接口不保证维护元素的顺序,而且元素不能重复。List接口维护元素的顺序,而且元素可以重复。
SortedSet和SortedMap提供了排序的功能。
再来看看接口的实现:
HashSet和LinkedHashSet:HashSet,为快速查找而设计的Set。存入HashSet的对象必须实现hashCode()和equals()。LinkedHashSet,具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序),于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
TreeSet: 提供排序功能的Set,底层为树结构 。相比较HashSet其查询速度低,如果只是进行元素的查询,我们一般使用HashSet。
ArrayList和LinkedList:ArrayList底层采用数组实现,具有较高的查询速度。LinkedList底层采用双向循环列表实现,进行插入和删除操作时具有较高的速度,我们还可以使用LinkedList来实现队列和栈。
TreeMap和HashMap:HashMap具有较高的速度(查询增删),TreeMap则提供了按照键进行排序的功能。
Properties:该类也是集合类,里面的键和值都是String类型,通过它我们可以获取系统属性,读取配置文件。
Collections:通过该类,我们可以对集合类进行一些排序和查找最大最小操作。
Arrays:该类提供了操作数组的一些方法。