Set集合特点:
不包含重复元素的集合
没有带索引的方法,所以不能使用普通for循环遍历
HashSet:对集合的迭代顺序不作任何保证
Set<String> set = new HashSet<String>();
set.add("hello");
set.add("world");
set.add("world");
for(String s : set) {
System.out.println(s);
}
输出: world hello
哈希值
哈希值是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
Object类中的 hashCode()
public int hashCode(): 返回对象的哈希码值
同一个对象多次调用hashCode()方法返回的哈希值是相同的
例子.png
HashSet集合概述和特点:
底层数据结构是哈希表
对集合的迭代顺序不做任何保证
没有带索引的方法,不能对普通for循环遍历
由于是set集合,所以不包含重复元素的集合
哈希表默认初始长度为16,负载为0.75
哈希表存储流程.png
LinkedHashSet集合概述和特点
哈希表和链表实现的Set接口,具有可预测的迭代次序
由链表保证元素有序,也就是说元素的存储和去除顺序是一致的
由哈希表保证元素唯一,也就是说没有重复的元素
TreeSet集合概述和特点
TreeSet集合概述和特点 .png
自然排序Comparable的使用
1.png 2.png 3.png 4.png
return 1 正序
return -1 倒序
return 0 返回第一个元素
Comparator的使用
Comparator的使用.png
网友评论