20180824_老师笔记

版权声明:原创内容是本人学习总结,仅限学习使用,禁止用于其他用途。如有错误和不足,欢迎评论指正补充。 https://blog.csdn.net/qian_qian_123/article/details/82056748

笔记

  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的异常

 

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

猜你喜欢

转载自blog.csdn.net/qian_qian_123/article/details/82056748
今日推荐