Java自学笔记—LinkedHashSet

Java自学笔记—LinkedHashSet

特点

  1. HashSet子类
  2. 底层是LinkedHashMap,底层维护了一个数组 + 双向链表,有 head 和 tail 结点
  3. 每个结点有before和after属性,以便形成双向链表
  4. 根据hashCode值确定元素存储位置,同时使用链表维护元素次序,使得元素看起来以插入顺序保
  5. 不允许添加重复元素
  6. 遍历时可以确保遍历和插入顺序一致
  7. 在添加元素时,先求hash值,再求索引,确定table位置,然后将该元素加到双向链表(如果已经存在,则不添加,和HashSet一样)
    tail.next = newElement;
    newElement.pre = tail;
    tail = ewElement;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Set;

/**
 * @author Lspero
 * @version 1.0
 */
public class LinkedHashSet_ {
   
    public static void main(String[] args) {
   
        
        Set set = new LinkedHashSet();
        set.add(new String("AA"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值