zoukankan      html  css  js  c++  java
  • AJPFX总结Collection集合(下)

    List集合特有方法
    特有方法。凡是可以操作角标的方法都是该体系特有的方法。
             add(index,element);在指定位置添加元素
             addAll(index,Collection);
             remove(index);         删除指定位置的元素
             set(index,element);          修改元素
             get(index):        通过角标获取元素
             subList(from,to);
             listIterator();   特有迭代器,可对集合进行操作
             intindexOf(obj):       获取指定元素的位置。
             ListIteratorlistIterator();
     
    List集合特有的迭代器。ListIteratorIterator的子接口。
     
    在迭代时,不可以通过集合对象的方法操作集合中的元素。
    因为会发生ConcurrentModificationException异常。
    所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,
    只能对元素进行判断,取出,删除的操作,
    如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator
     
    该接口只能通过List集合的listIterator方法获取。
    Vector
    特有的取出方式:枚举(io中有用到)与迭代器一样。
    Enumeration<E> elements()
             返回此向量的组件的枚举。
    Enumeration en = v.elements();
                       while(en.hasMoreElements())
                       {
                                System.out.println(en.nextElement());
                       }
    LinkedList:特有方法
    void addFirst();         addLast();
    添加元素
    getFirst();                   getLast();
    获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
    removeFirst(); removeLast();
    获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
     
    JDK1.6出现了替代方法。
    boolean offerFirst();         offerLast();
    添加元素
    peekFirst();       peekLast();
    获取元素,但不删除元素。如果集合中没有元素,会返回null
    pollFirst();         pollLast();
    获取元素,但是元素被删除。如果集合中没有元素,会返回null
    堆栈数据结构 :先进后出,FirstIn Last Out -- FILO如同杯子。
    队列数据结构 :先进先出,FirstIn First Out -- FIFO如同水管。
    List集合
    判断元素是否相同,依据是元素的equals方法。
    contains()remove()方法底层调用的是equals
    Set集合
    Set集合的功能与Collection是一致的。
    HashSet集合
    如何保证元素唯一性的呢?
    是通过元素的两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true;如果元素的hashcode值不同,不会调用equals。
     
    注意,对于HashSet集合判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcodeequals方法。
    TreeSet集合
    保证元素唯一性的依据:compareTo方法return 0.
    compareTo方法return 正数,元素向后放;compareTo方法return 负数,元素向前放。
    用该方法直接return正数或负数,来完成集合元素的正序或逆序。
     
    TreeSet排序的第一种方式:
    让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。也种方式也成为元素的自然顺序,或者叫做默认顺序。
     
    TreeSet排序的第二种方式:。
    当元素自身不具备比较性时,或者具备的比较性不是所需要的。这时就需要让集合自身具备比较性。在集合初始化时,就有了比较方式(传入比较器)。
    当两种方式都存在时,以比较器为主。
    如何定义比较器?
             定义一个类,实现Comparator接口,覆盖compare方法
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10887718.html
Copyright © 2011-2022 走看看