zoukankan      html  css  js  c++  java
  • 移动平台开发第四周学习总结

    第十二章 枚举

    枚举(enum)用于表示一个类的对象是有限且固定的情况。与静态常量相比,枚举类型更加安全。使用枚举类型就能保证只传入枚举类中包含的对象。
    定义的一个enum,是java.lang.Enum类的直接子类。enum不同于其他普通的类有:
    它们没有共有的构造函数,这使得不可能将其实例化
    它们隐式地是静态的
    每个enum常量只有一个实例
    可以在一个enum上调用values方法,以遍历其枚举值,返回一个对象的数组。
    可以在values所返回的对象上调用name和ordinal方法,以分别获取该实例的名称和排序值
    enum上的switch:switch语句也可以作用于一个enum的枚举值之上。
    枚举成员:由于enum是一个类,一个enum可以有构造方法和方法。

    第十三章 操作时间

    lnstant类:instant对象表示时;间线上的一个时间点。
    LocalDate类建模没用时间部分的日期。
    period:period类表示基于日期的一个时间量。
    LocalDateTime:LocalDateTime类表示一个没用时区的日期时间。
    ZonedDateTime类表示带有时区的日期时间。
    Duration:Duration类表示基于时间的时间段。它类似于period,只不过Duration的时间部分精确到纳秒,并且考虑到了ZonedDateTimes之间的时区。
    格式化日期时间:使用一个java.time.format.DateTimeFormatter可以格式化一个本地日期时间或带时区的日期时间。
    解析一个日期时间:在java日期和时间API的中断类中,有两个parse方法。第一个parse方法需要一个格式,第二个则不需要。
    使用旧的日期和时间API:旧的API主要以Date和Clalendar类为中心。

    第十四章 集合框架

    和C++中的集合框架类似,Java带有一组接口和类,使得操作成组的对象更为容易,这些接口和类称为集合框架。
    集合也叫作容器,提供了一种方法来存储、访问和操作其元素,在Java中,元素皆为类的对象。
    集合框架中的常见类型:

    集合框架的大多数接口都带有实现类,一个实现类有两个版本,同步的版本和非同步的版本。

    LIst和ArrayList

    List是Collection最为常用的接口,相当于数组,ArrayList是最为常用的List的实现类。具有add、set、remove等方法。有两个构造方法,无参数和有参数的构造方法。并且允许存储重复的元素。

    java.util.Arrays类中有asList方法;LIst接口还有用于搜索集合元素的indexOf和lastIndexOf方法。
    java.util.Collections类也是一个辅助工具类,用于提供操作List和其他Collection实现的对象的方法,例如sort方法。

    Iterator和for

    Collection接口中有一个iterator方法,当Collection中的对象(例如ArrayList类的实例)调用这个方法时,会返回Iterator接口的对象,这个对象能够对Collection中对像进行遍历操作,相关方法有hasNext、next、remove。

    上个截图中的遍历使用的是一个增强的for循环,编译器将其翻译为:
    for (Iterator iterator = myList.iterator( ); iterator.hasNext( ); ) {
    String element = (String) iterator.next( );
    System.out.println(element);
    }

    Set和HashSet

    Set相当于数学中的集合,但不允许存在重复的内容,最流行的实现是HashSet,但不保证元素的顺序保持不变。

    Queue和LinkedList

    Queue相当于一个队列接口,遵循先进先出原则,LinkedList是实现Queue的一个类。
    添加方法:offer和add; 弹出方法:Remove和Poll;取头部值方法:Element和Peek。

    集合间的类型转换。

    Map和HashMap

    Map为映射关系,键值对,HashMap为Map的一个实现类。相关方法:put、putAll、remove、get、keySet、values、entrySet.

    遇到的问题?未解决。。。

    使用entrySet方法,返回包含的Map.Entry对象的一个Set,但该Set中的元素不能使用Map.Entry接口中的getKey()和getValue()方法。

    使用getClass()方法,发现元素属于 java.util.HashMap$Node类,不知该类是否实现了Map.Entry接口。

    对象的比较和排序

    Arrays.sort和Collections.sort方法都定义了他们自身和需要排序的对象之间的一个协议,这个协议的形式是java.lang.Comparable接口。
    接口中的compareto(obj)方法是用来设置对象之间进行比较的规则,参数obj引用了需要和该对象进行比较的对象。
    sort方法会将实现了的Elephant对象当作一个Comparable对象,并在该对象中重复调用compareto来进行排序。

    使用Compatator接口,实现compare方法。###课本上的代码没标注@Override重载标签。

    第十五章 泛型

    将集合框架设置专有的类型。

    通配符的使用。

  • 相关阅读:
    P2590 [ZJOI2008]树的统计(树链剖分)
    【算法】线性排序
    【LeetCode每天一题】Median of Two Sorted Arrays(两数组中的中位数)
    【算法】归并排序
    【LeetCode每天一题】Longest Substring Without Repeating Characters(最长无重复的字串)
    【算法】快排
    【LeetCode每天一题】Add Two Numbers(两链表相加)
    【LeetCode每天一题】Two Sum(两数之和)
    【算法】选择排序
    【算法】插入排序
  • 原文地址:https://www.cnblogs.com/20189210mujian/p/10585517.html
Copyright © 2011-2022 走看看