Javaday27

集合框架:  线性表
  List 数组 和 链表的实现接口
  Queue:  单向队列
     Deque: 双向队列
  Set接口:
       1)HashSet:
           底层实现: HashMap ,HashMap底层是用什么实现的哈希表(散列表)
       
      使用HashSet前提: 
        1.存储String ,Integer ,因为他们重写了 hashCode 和 equals
        2.自定义对象: 必须 重写 hashCode 和  equals     
     
       2)TreeSet: 为了 排序
          有序的set集合: 
           使用TreeSet 集合的前提是 必须 实现Comparable接口

   Comparable 和  Comparator
      
      Comparator自定义比较器: 我们可以创建多个 比较规则
       或使用匿名内部类 完成,这样跟灵活,实现这个接口后
       必须重写 compare(Object o1, Object o2)方法 
        
      Comparable: 是让当前类具有可以比较的能力,
        重写compareTo(Object o1)方法 ,污染当前比较类
        
    Set set = new TreeSet(new Comparator(){
          
          @Override
          public int compare(Object o1,Object o2){
          
          }
    
    });      
        
  public class Student implements Comparable<Student>{
           
  }      
-----------------------------------------------------
}
----------------------------------------------------
Map集合: 
  存储方式 使用  键值对儿 存储的
  key - value
  
  HashMap:
     特点:key 是 不允许重复的 ,而且value 会被 覆盖掉
            无序的
          map在存储时 是根据 key 来判断的,跟value 无关
         
   常用方法: 
    1.clear();
    2.put(key,value); 向map 集合添加元素
    3.containsKey(); 判断是否包含 键      
       4.containsValue(); 判断是否包含 值  
       5.String   remove(Object obj);
       6.boolean  remove(Object obj,Object value);
       7.V        replace(K key, V value);
       8.boolean  replace(K key, V oldValue, V newValue);
       9.size(); 返回map 集合中元素的个数
       10.isEmpty(); 判断是否为 空 
 
 *** 11.entrySet();  遍历 整个 map 集合
                要同时获取 key 和 value 
                
      12.values(); 只获取 map 集合中的所有value 值 
      13.keySet(); 只获取 map 集合中的所有key 值            
      14.get(Object key); 根据键 找 值          
         
  TreeMap:
       这是有序的map 集合 但是,这个排序 是根据 key 值排序的,
       如果存储String ,Integer 类型 根本不需要我们考虑其他的
       但是如果存储自定义对象时 ,并且 自定义对象 还做了 key值 ,就必须实现 比较器
       但是这么做有没有什么意思; 如果自定义对象做了 value 值,排序规则
       是根据key来定义的,跟 value 没关系
       
**** TreeMap 的key 是不允许存储 null 值的
           因为 需要根据key 来排序       
       
  Hashtable: 
      是线程安全的, 性能慢, 采用的是 独占锁
   Hashtable中 的键和值 都不可以 存储null 值
       
Enumration      elements();
Enumration     keys();

================================================
  高并发的场景:
    
     选择线程安全的 容器;
     
     Hashtable : 性能慢
     
     jdk1.5 : 并发包      concurrent。    
    
java.util.concurrent.concurrentHashMap :synchroized
  
   分段锁机制
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值