zoukankan      html  css  js  c++  java
  • java基础——集合框架

    Collection下的容器

    1.Set

    HashSet是最普通的set,仅能用来存储不同的数据

    LinkedHashSet主要用来FIFO

    TreeSet主要用来排序,所以不允许null(基本上等价于stl的set了,底层也是红黑树)

      TreeSet的两种排序方法:

        1.自然排序,让TreeSet<A>的A类去实现Comparable接口内的int CompareTo(A a)方法

                返回值0:元素相同,去重

                 返回值1:顺序

              返回值-1:逆序

        2.比较器排序,单独创建一个比较类MyComparator,继承Comparator<T>泛型接口,重写int compare(T t1,T t2) 方法

                在创建TreeSet时把这个比较器丢到构造函数里去,TreeSet<T> ts = new TreeSet<T>( new MyComparator() );

              返回值处理同上

    具体例子看这个

    https://blog.csdn.net/zhangqunshuai/article/details/80660974

    2.List

    ArrayList:快速随机访问,地址连续

    LinkedList:对顺序访问进行了优化,向List中间插入与删除的开销并不大,地址不连续,所以在开辟内存空间的时候不需要等一个连续的地址

          还具有下列方 法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(),

          这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

     Vector: 同步,线程安全的List,太老了一般不用?

    关于Collection接口下的通用方法

    boolean add(Object o)      :向集合中加入一个对象的引用 
     
    void clear():删除集合中所有的对象,即不再持有这些对象的引用 
     
    boolean isEmpty()    :判断集合是否为空 
     
    boolean contains(Object o) : 判断集合中是否持有特定对象的引用 
     
    Iterartor iterator()  :返回一个Iterator对象,可以用来遍历集合中的元素 
     
    boolean remove(Object o) :从集合中删除一个对象的引用 
     
    int size()       :返回集合中元素的数目 
     
    Object[] toArray()    : 返回一个数组,该数组中包括集合中的所有元素 

    Map下的容器

    3.map

    HashMap:最普通的map,使用hashCode()进行key->value快速查询,基于hash表实现,

      判不同时要同时重写equals方法和hashCode方法

      此外有keySet()方法返回键值集合

         entrySet()方法返回键值对集合

         Entry<K,V>为一个键值对,getKey方法得到键值,getValue方法得到值

      此外,自定义类要实现在map里判断不同,必须重载equals和hasCode方法,因为map是通过key对象得到hashcode,equals用来判key是否相等,在这基础上还要再判一次hashcode

      map用法 https://blog.csdn.net/qq_29373285/article/details/81487594

      底层原理 https://blog.csdn.net/woshimaxiao1/article/details/83661464

     

    LinkedHashMap:使用 链表维护

    TreeMap:内部元素按key以某种规则有序,排序规则参照TreeSet的排序方式(所以底层也是红黑树)

      TreeMap:https://www.jianshu.com/p/e11fe1760a3d

    array:代表最普通的数组

    Java中有一个Arrays类,专门用来操作array。

    arrays中拥有一组static函数,
    equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
    fill():将值填入array中。
    sort():用来对array进行排序。
    binarySearch():在排好序的array中寻找元素。
    System.arraycopy():array的复制。
  • 相关阅读:
    jquery中子元素和后代元素的区别
    MVC4 创建控制器时,无法检索元数据
    ref和out的用法说明举例(转)
    DataView的ToTable方法,类似数据库Distinct。
    oracle 19C 静默安装(单机版)
    Supervisord进程管家
    zabbix v3.0安装部署【转】
    Linux下Hadoop2.7.3集群环境的搭建
    Redis集群搭建与简单使用【转】
    redis+keepalived实现高可用
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12149352.html
Copyright © 2011-2022 走看看