Set集合元素是无序的(存入和取出的顺序不一定一致),元素不可以重复
HashSet:底层数据结构是哈希表
HashSet是如何保证元素是唯一的呢?
是通过元素的两个方法,hashCode和equals来完成
如果元素的HashCode值相同,才会判断equals是否为true,如果元素的HashCode值不同,不会调用equals
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的HashCode和equals方法
TreeSet:可以对Set集合中的元素排序
底层数据结构是二叉树
set 数组的实现类是HashSet和LinkedHashSet,set接口继承于Collection接口,而Collection接口继承于Iterable接口;
set数组中不存在get()方法;
往set中添加元素使用的是add()方法,但是在set中没有add(index , element)方法。
Set mySet = new HashSet<>();
mySet.add(“a”);
mySet.add(“b”);
mySet.add(“c”);
内容添加过后,接下来就是要取出Set中的内容,用到forEach遍历输出Set中的元素;
for (String string : mySet) {
System.out.println(string);
}
上面提到用forEach遍历数组Set,那下面我就用迭代器来遍历Set数组;
Iterator iterator = mySet.iterator();
(next()方法:输出Set数组元素,当下一个位置无元素是,使用next()方法就会抛出异常(NoSuchElementException)。)
(hasNext()方法,判断下一个位置是否有元素,返回值类型是boolean类型)
while(iterator.hasNext()){
System.out.println(iterator.next());
}