Java提供了Map和Set接口,两者的区别在于Set不能放入重复元素,而Map存储键值对。还有List接口,顺序存储。 List接口有两个实现类,LinkedLIst内部以链表实现,增删较快,查询较慢。ArrayList内部以数组形式实现,增删较慢,查询修改较快。两者共同点都是顺序存储。两者的排序方法必须要求存储元素实现Comperable接口。 Map接口有两个实现类,HashMap内部以哈希表实现键存储。值则是键对象中的对象引用。要求存储元素实现了HasCode方法。HashCode方法保证键的唯一性。Treemap内部以树实现,与Hash表不同,是顺序存储,但是增添删除效率不如HashMap。Map允许值对象为Null,所以不能用get方法判断键是否存在,get方法返回空有两种情况,一种不存在该键,另一种实键映射到空对象上。应该用containKey()方法判断。 Set接口有两个实现类,HashSet内部以哈希表实现存储。Set要求对象是唯一的所以存储的元素必须实现Equal方法避免重复存储。存储元素按照哈希排序,所以元素还必须实现HashCode方法。 TreeSet内部以树实现存储。以树进行存储就必须要比较,存储元素要实现Comparable接口。这两者的区别在于一个是按递增或递减顺序遍历,另一个是无序遍历。
|
|
来自: Dragon_chen > 《Java》