可以使用集合的三个具体类HashSet、LinkedHashSet、TreeSet来创建集合。
set接口扩展了Collection接口 ,它没有引入新的方法或常量,只是规定set的实例不包含重复的元素。一个集合的散列码是这个集合的所有元素的散列码的和。Hashset类是一个实现了Set接口的类,可以使用它的无参构造函数来创建空的散列集,也可以由一个现有的集合创建散列表。默认情况下,初载容量为16而负载系数是0.75。负载系数的值在0.0~1.0之间。在增加集合的容量之前,负载系数测试该集合允许多满。当元素的个数超过了容量与负载系数的乘积,容量就会自动翻倍。例容量为16,负载系数为0.75。当元素个数达到16*0.75=12时,容量就会翻倍到32.比较高的负载系数会降低空间开销,但是会增加查找时间。通常情况下,默认的负载系数是0.75,它是在时间开销和空间开销上一个很好的权衡。
package test;
import java.util.HashSet;
import java.util.Set;
public class project1 {
public static void main(String []args) {
Set<String> set=new HashSet<>();
set.add("北京");
set.add("上海");
set.add("长沙");
set.add("广州");
set.add("北京");
set.add("武汉");
System.out.print(set);
}
}
输出:[上海, 广州, 长沙, 武汉, 北京]
该程序将多个字符串添加到集合中,北京被添加两次,但是只有一次被存储。字符串并没有按照它们被插入的顺序存储,因为散列表是没有特定顺序的。要强加给它们一个顺序,就要使用到LinkedHashSet类。