zoukankan      html  css  js  c++  java
  • 第四周学习视频(一)

    一、集合-Queue接口

    PriorityQueue(优先队列) 是实现Queue接口的一个类。
    当元素添加到PriorityQueue时,它们按优先级顺序插入。(具有最高优先级就是首先被删除的元素)


    PriorityQueue常见的操作:
    offer:将一个元素按优先级顺序插入到合适的位置
    poll:删除优先队列中具有最高优先级的元素 (队头)
    peek:获得队列中具有最高优先级的元素,不删除它
    clear:删除优先队列中的全部元素。
    size:获得优先队列中的元素数量。

    二、集合-Set接口

    Set 接口继承 Collection 接口,它不允许集合中存在重复项。
    所有原始方法都是现成的(来自Collection),没有引入新方法。
    具体的 Set 实现类依赖添加的对象的 equals() 方法来检查等同性。
    “集合框架”支持 Set 接口两种普通的实现:HashSet、TreeSet。

    三、HashSet

    主要的一个无重复的集合类,元素没有顺序,没有提供同步机制,后台使用HashMap实现。

    四、TreeSet

    内部用TreeMap实现。
    TreeSet是一个有序集合,其中元素将按照升序排列,缺省是按照自然顺序进行排列,意味着 TreeSet中元素要实现Comparable接口。
    也可以在构造TreeSet对象时,传递实现了 Comparator接口的比较器对象。
    非同步的。

    五、HashSet和TreeSet的比较

    HashSet是基于Hash算法实现的,其性能通常都优于TreeSet。
    通常都应该使用HashSet,在需要排序的功能时,才使用TreeSet。
    一般说来,先把元素添加到 HashSet, 再把集合转换为 TreeSet 来进行有序遍历会更快。

    六、集合-Map接口

    Map 接口不是 Collection 接口的继承。而是从独立的用于维护“键-值”映射的接口层次结构入手。
    该接口描述了从不重复的键到值的映射。

    七、Hashtable类

    Hashtable实现了Map接口,实现一个 key-value映射的哈希表。
    任何非空(non-null)的对象都可作为 key或者value。
    Hashtable是同步的。
    添加数据使用put(key, value),取出数据使用get(key)。

    八、ProPerties

    Hashtable的子类,只能操作字符串,保存字符串的键/值对。
    使用setProperty和getProperty方法来维护表。
    具有“持久性”:意味着能将Properties对象写入输出流,并能通过输入流读取。常用于维护程序配置数据或者用户首选项。

    九、HashMap

    HashMap和Hashtable类似,提供程序员能够使用哈希运算而不必实现哈希表机制。
    它与Hashtable不同之处在于: HashMap是非同步的,并且允许null, 即null value和null key。

    十、TreeMap

    其中的元素可以按照Key的自然顺序排列,也可以是由Comparator指定的顺序排列。
    作为Key的类需要实现Comparable接口,基本操作的时间复杂度是log(n),非同步的。

    十一、集合算法

    Collections类提供了各级高性能的算法 (实现成静态方法),用于操作集合元 素。
    用于操作List的:Sort、binarySeatch、reverse、shuffle、 fill、copy
    用于操作Collections的:Min、max、addAll、frequency、 disjoint

    十二、算法--排序Sort

    排序List中的元素可以使用Sort算法,它必须实现Comparable接口。
    List中的元素按照compareTo方法实现的自然顺序确定的。
    自然序排序:eg.Collections.sort( list );
    降序排序:eg.Collections.sort( list, Collections.reverseOrder() ); reverseOrder返回一个Comparator对象,它对集合进行逆序排序。

    十三、Comparable实际例子

    Comparable目的是让集合内部存在一个默认的比较规则。

    public class User implements Comparable<Object> { 
        ……     
        public int compareTo(Object o) {
             return …… 
        }  
        public static void main(String[] args) { 
            …… 
            Arrays.sort(users); 
            …… 
        } 
    } 
    

    十三、Comparator实际例子

    Comparator是在集合外部定义比较规则。

    public class UserComparator implements Comparator<Object>{ 
        public int compare(Object o1, Object o2) { 
        return …… 
        } 
    } 
    public class User { 
    …… 
        public static void main(String[] args) { 
        …… 
        Arrays.sort(users, new UserComparator());
        …… 
        }
    }
    

    十四、Shuffle算法

    用于随机排序List元素。( 用随机排序算法洗牌 )
    eg. Collections.shuffle( list );

  • 相关阅读:
    css grid 随笔
    网页“console”输出图文信息
    2017
    自适应css 框架 PURE
    获取去除参数url地址
    微信分享
    video 播放
    手机端 默认字体
    video 手机全屏自动播放
    jquery 获取元素背景图片backgroungImage的url
  • 原文地址:https://www.cnblogs.com/caihan/p/12447133.html
Copyright © 2011-2022 走看看