20180824_老师笔记_LinkedHashSet,HashMap,泛型

笔记

  1. 复习
  2. LinkedHashSet:  有序, 唯一  双重链  header维护次序

HashSet :  无序  唯一

1.创建对象:

LinkedHashSet()
          构造一个带默认初始容量 (16) 和加载因子 (0.75) 的新空链接哈希 set。

LinkedHashSet(Collection<? extends E> c)
          构造一个与指定 collection 中的元素相同的新链接哈希 set。

LinkedHashSet(int initialCapacity)
          构造一个带指定初始容量和默认加载因子 (0.75) 的新空链接哈希 set。

LinkedHashSet(int initialCapacity, float loadFactor)
          构造一个带有指定初始容量和加载因子的新空链接哈希 set。

 

计算 扩容的时候:  容量*加载因子  = 16*.75 =12

  初始容量 = 2 的次方

 

  1. Map接口

存放的就是一组 key-value 的键值对

要求: key 必须唯一, value 可能重复

 

常用的类: HashMap, HashTable, TreeMap…

HashTable:  线程安全, key不能为null

HashMap: x线程不安全,  key可以是null, value可以是null

 

  1. 构造方法:

HashMap()
          构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。

HashMap(int initialCapacity)
          构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。

HashMap(int initialCapacity, float loadFactor)
          构造一个带指定初始容量和加载因子的空 HashMap。

HashMap(Map<? extends K,? extends V> m)
          构造一个映射关系与指定 Map 相同的新 HashMap。

 

HashMap的原理:

    如果添加一个元素, key为null,  k-v 放在table[]第一个位置

常用方法:

   添加元素: put(k,v), 如果key不存在, 就添加, 如果key存在, 新添加的元素覆盖已有的元素

   删除:  remove(k)  通过key删除

   查询:  值  get(key)  通过key获取指定key的值

   size() 获取map包含多个对key-value

   clear() 清空

  isEmpty() 判断map是否是空

 Set  keySet(  )获取所有key

Conllection values()  获取所有的value

containsKey(key) 判断key是否存在

containsValue(value) 判断value是否存在

 

TreeMap: 对key的排序, 如果key是自定义类型, 需要对key 添加比较器

 TreeMap<Student, Integer>

 

3.泛型   <数据类型, 通配符>

1.声明一个泛型类

 public  class  类名<T>{}

  表示T可以在类的普通方法, 参数, 返回值使用

  如果该类有static修饰的方法, 类定义的泛型不能使用

   需要时static后面使用<泛型名>声明泛型

public  static <E> void fun2(E ele){   

    }

 

  泛型的好处:

  1. 限制添加的元素的类型
  2. 避免我们强制类型转换, 避免的出现ClassCastException的异常

 

 注意: 泛型 不能使用基本类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值