Java学习日志18(集合四天学习总结)

2019.2.22 15:01

集合的学习知识概述

  • Collection

    •   List(存取有序,有索引,可以重复)
      	 	ArrayList
          			底层是数组实现的,线程不安全的,查找和修改快,	增加删除慢
      		LinkedList
         				底层是链表实现的,线程不安全的,增加和删除快,查找和修改慢
         *			Vector
           *				底层是数组实现的,线程安全的,增删查改都慢
      
    • 如果查找和修改多,用ArrayList
      如果增加和删除多,用LinkedList
      如果都多,用ArrayList
      
    •   Set(存取有序,无索引,不可以重复)
        HashSet
        	底层是哈希算法实现的
            LinkedHashSet
        		底层是链表实现的,但是也是可以保证元素唯一,和HashSet原理一样
        TreSet
        	底层是二叉树算法实现的
        一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用HashSet,他的效率比较高
        TreeSet在面试的时候比较多,问你有几种排序方式,几种排序方式的区别
      
  • Map

    •   HashMap
        底层是哈希算法,针对键
        LinkedHashMap
        	底层是链表,针对键
      
    •    TreeMap
         底层是二叉树算法,针对键
      
    • 	开发中HashMap用得比较多 
      
  • 单列集合中,如果存储重复元素,优先考虑ArrayList,不需要存储重复元素,有限考虑HashSet
    双列集合中,主要考虑HashMap,除非需要对键进行排序,才需要TreeMap
    

你可能感兴趣的:(Java学习日志18(集合四天学习总结))