HashSet集合的特点
.底层数据结构是哈希表
.对集合的迭代顺序不做任何保证,也就是说不保证存储和取出的元素顺序一致
.没有带索引的方法(因为根本没有索引)所以不能使用普通for循环来遍历输出
.由于是set集合的实现类,所以所以不包含重复的元素集合
HashSet集合练习
.存储字符串并遍历
HashSet的源码分析
.存入元素会和以前的元素比较哈希值
.如果哈希值不同,会继续向下执行,把元素添加到集合
.如果哈希值相同,就会调用对象的equals()方法进行比较
.如果返回为false,就会继续向下执行,把元素添加到集合
.如过返回为true,说明元素为重复,不存储
HashSet集合添加元素的过程:也是HashSet集合保证元素唯一性源码分析
package set集合;
import java.util.HashSet;
import java.util.Iterator;
public class HashSetDemo {
/*
HashSet集合的特点
.底层数据结构是哈希表
.对集合的迭代顺序不做任何保证,也就是说不保证存储和取出的元素顺序一致
.没有带索引的方法(因为根本没有索引)所以不能使用普通for循环来遍历输出
.由于是set集合的实现类,所以所以不包含重复的元素集合
HashSet集合练习
.存储字符串并遍历
HashSet的源码分析
.存入元素会和以前的元素比较哈希值
.如果哈希值不同,会继续向下执行,把元素添加到集合
.如果哈希值相同,就会调用对象的equals()方法进行比较
.如果返回为false,就会继续向下执行,把元素添加到集合
.如过返回为true,说明元素为重复,不存储
HashSet集合添加元素的过程:
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
//创建集合对象
HashSet<String> hs =new HashSet<String>();
hs.add("hello");
hs.add("world");
hs.add("java");
//迭代器
Iterator<String> it = hs.iterator();
while(it.hasNext()) {
String s = it.next();
System.out.println(s);
//增强for循环遍历
for(String s1 : hs) {
System.out.println(s1);
}
}
}
}