这个问题就比较广泛了,这三个体系的子类也各有不同的存取方法,详细的话还是参考集合框架的视频吧。简单说下比较大的区别:
1.List;元素是有序,元素可以重复,因为该集合有索引。所以所有操作操作角标的特有方法只有list集合有,而set和map是不具备的,像这些remove、contains判断元素是否相同的方法,都会调用 集合内部对象的equals方法
2Set: 元素是无序的,元素不可重复.HashSet底层的数据结构是哈希表,比较元素是否相同:先比较 hashCode后equals 。hashCode一致不一定是一个对象 (比如String常量和new一个String的hashcode也是一一致的)。TreeSet可以对集合中的元素进行自然排序。底层数据结构是二叉树(可以减少比较次数)。判断是否唯一性的依据:1自身具备比较性comparable (重写compareTo方法) 2当元素自身不具备比较性时, 就让集合自身具备比较性 Comparator比较器 (重写compare方法)
3Map集合:保证键的唯一性。如果有相同的键,put方法后覆盖原来的值Map自身无迭代器:遍历元素的两种方式
1 map.keySet() 返回键的key的set集合
2 map.entrySet() 返回映射关系的set集合
|