zoukankan      html  css  js  c++  java
  • [集合]集合相关简单总结

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

        

    TreeSet的两种排序方式

    (1). 让元素本身具有比较性

           元素本身要实现Comparable接口并实现里面的compareTo方法以保证元素本身具有比较性

    (2). 让容器自身具有比较性

           当元素本身不具有比较性或者具备的比较性不是所需要的,就在TreeSet建立实例的时候,传入Comparator接口的实现子类的实例。这个Comparator子类必须实现compare方法。


    * Map
    *    HashMap
    *      底层是哈希算法,针对键
    *      LinkedHashMap
    *        底层是链表,针对键
    *    TreeMap
    *      底层是二叉树算法,针对键
    * 开发中用HashMap比较多

  • 相关阅读:
    xx系统需求分析01—用户权限管理(一)
    软件工程第五周总结
    Hbase的常用shell命令+Java操作
    软件需求阅读笔记02
    MyBatis学习总结03-动态SQL
    MyBatis学习总结02
    MyBatis学习总结01
    软件工程第四周总结
    软件需求阅读笔记01
    MapReduce案例-流量统计
  • 原文地址:https://www.cnblogs.com/gaoyang666/p/11273151.html
Copyright © 2011-2022 走看看