集合类Hash Set,LinkedHashSet,TreeSet

  集合(set)是一个用于存储和处理无重复元素的高效数据结构。映射表(map)类似于目录,提供了使用键值快速查询和获取值的功能。

 

  HashSet类是一个实现了Set接口的具体类,可以使用它的无参构造方法来创建空的散列集(hash set),也可以由一个现有的合集创建散列集。

  当元素个数超过了容量与负载系数的乘积,容量就会自动翻倍。 默认情况,初始容量为16而负载系数是0.75。

  HashSet  散列类

  集合种不允许有重复的元素。

  散列集种的元素是没有特定顺序的。如果要强加给它们一个顺序,需要使用 LinkedHashSet类

  集合中的元素可以遍历。可以使用 foreach循环遍历集合中的所有元素。 

foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
     引用了x的java语句;
}
set1.add("set2")   增加元素
set1.remove("set2") 移除元素
set1.contains(set2) 查找有无该元素,有返回true ,没有返回false
set1.addAll(set2)  添加所有元素
set1.removeAll(set2) 删除所有元素
set1.retainAll(set2) 保留共有的元素
set1.clean()          清空
 
LinkedHashSet类  链式散列集
LinkHashSet用一个链表实现来扩展HashSet类,支持对集合内的元素排序。
元素按插入顺序存储。保持了元素插入是的顺序。如果要强加一个不同的顺序(如升序降序),可以使用TreeSet类。
 
TreeSet类  树形集
SortedSet 是 Set 的一个子接口,确保集合中的元素是有序的。 first()和last()返回集合中的第一个元素和最后一个元素,headSet(toElement)和tailSet(fromElement)分别返回集合中元素小于(toElement) 和 大于或等于(fromElement)的那部分。
navigableSet 扩展了 SortedSet, 并提供导航方法 lower(e)、floor(e)、c eiling(e)和higher(e)分别返回小于、小于等于、大于等于 以及大于 给定一个元素的元素。 如果没有 ,返回null。方法 pollFirst()和pollLast()分别删除和返回树形集种的第一个元素和最后一个元素。
TreeSet 实现了 SortedSet 接口。
 
 ------------------------------------
 
  当更新一个集合时,如果不需要保持元素的排序关系,就应该使用散列集,因为在散列集中插入和删除元素所花的时间比较少。 当需要一个排好序的集合时,可以从这个散列集创建一个树形集。
 
问题1:如果向树形集内添加一个不能与已有元素进行比较的元素,会发生什么情况?
   
 
 
 
原文地址:https://www.cnblogs.com/magicya/p/6679080.html