欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020-12-15

程序员文章站 2024-01-29 10:34:10
...

集合

Collection接口
   list接口
     ArrayList,LinkedList,Vector
    set接口
      HashSet,LinkedHashSet,TreeSet
Map接口 
    HashMap,LinkedHashMap,TreeMap,HashTable,Properties    
  	 		

list的contains等 set因不可重复所以add肯定要比较,map中的entry<key,value> 等等操作,都要求对自定义类的操作要重写hashcode(),equal()---------原因(内容相同,不必地址相同)

是否是键值对象形式:
    是:Map
        键是否需要排序:
            是:TreeMap
            否:HashMap
        不知道,就使用HashMap。 
        
    否:Collection
        元素是否唯一:
            是:Set
                元素是否需要排序:
                    是:TreeSet
                    否:HashSet
                不知道,就使用HashSet
                
            否:List
                要安全吗:
                    是:Vector
                    否:ArrayList或者LinkedList
                        增删多:LinkedList
                        查询多:ArrayList                                         //双向链表
                    不知道,就使用ArrayList
        不知道,就使用ArrayList
                                           2  .ConcurrentHashMap 线程安全,锁分段,get无锁,put用synchronized(f)分段对象锁保证同步

                                              CopyOnWriteArrayList 通过持有final transient ReentrantLock保证线程安全
                3    .  map增删改查
                               clear()	从 Map 中删除所有映射
                               remove(Object key)	从 Map 中删除键和关联的值
                               put(Object key, Object value)	将指定值与指定键相关联
                               putAll(Map t)	将指定 Map 中的所有映射复制到此 map
                               get(Object key)	从map中获取键为key的值
4:集合的常见方法及遍历方式
Collection:
add()
remove()
contains()
iterator()
size()

    遍历:
        增强for
        迭代器
        
    |--List
        get()
        
        遍历:
            普通for
    |--Set

Map:
    put()
    remove()
    containskey(),containsValue()
    keySet()
    get()
    value()
    entrySet()
    size()
    
    遍历:
        根据键找值
        根据键值对对象分别找键和值
相关标签: 笔记 java