• 《数据结构和Java集合框架》第二章学习笔记


    《数据结构和java集合框架》——第二章 接口和集合类


    (虚线框代表接口类型,实线框里填写的是具体实现类)

    集合按照其存储结构可以分为两大类,即单列集合Collection和双列集合Map
    ●Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是List和Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序且不可重复
    ●Map:双列集合类的根接口,用于存储具有键(Key)、值(value)映射关系的元素。

    一.重要概念

    接口是抽象方法和常量的集合。接口中没有任何确定的方法,没有任何字段。因为接口中的所有方法都是抽象方法,所以方法标题中不需要使用abstract限定符。另外,接口中的所有方法都是公共的,因此方法标题中也不需要使用public限定符。
    集合是由元素组成的对象

    二.知识点

    ☺抽象类不能实例化,抽象方法的主要优点是增强了后代(子类)的一致性(在子类中方法的定义具有相同的标题)。
    ☺如果一个类实现了一个接口,但是没有为接口的所有方法提供方法定义,那么这个类必然是抽象类。
    ☺比较对象时,==比较的是地址,而equals()比较的是对象内容

    2.1 this关键字的用法

    (1)this代表当前对象的一个引用。所谓当前对象,指的是调用类中方法或属性的那个对象
    (2)this只能在方法内部使用,表示对“调用方法的那个对象”的引用。但要注意,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。当前方法的this引用会自动应用于同一类中的其他方法。
    (3)this不能用于静态方法。main方法也是静态的,所以this也不能用于main方法。
    (4)可以使用this关键字调用重载构造方法。避免相同的初始化代码,智能在构造方法中用,并且必须位于构造方法的第一句。并且,除了构造器外,编译器禁止在其他任何地方中调用构造器

    2.2 super关键字的用法

    ☺super只在子类中出现
    super有三种用法
    ♣super.XXX——(XXX可以是类的属性)

    从子类获取父类属性的值

    ♣super.XXX——(XXX可以是类中的方法名)

    直接访问父类中的方法并调用

    ♣super();

    直接调用父类的构造函数,括号里的内容根据所调用的某个构造函数的变化而改变

    2.3 类和接口的关系

    (1)一个接口可以扩充另一个接口
    (2)一个类智能扩充一个其他的类。在Java语言中禁止多重继承(容易意义不明确)
    (3)一个类可以实现多个接口
    (4)如果一个类实现了接口中部分(但不是全部)的抽象方法,那么这个类必须声明为抽象类,并且因此不能实例化

    2.4 Java原始数据类型

    在Java语言中,有两种变量:原始变量和引用变量。原始变量保存原始数据类型:
    boolean,char,byte,short,int,long,double,float。引用变量保存对对象的引用。

    2.5 Integer类型转换

    int i;
    Integer myInt;
    String s;
    Object obj;
    
    要获取 获取对象 示例
    Int Integer i = myInt.intValue
    Int String i = Integer.parseInt(s)
    Integer String myInt = new Integer(s)
    Integer Object myInt = (Integer)obj
    Integer int myInt = new Integer(i)
    Object Integer obj = myInt
    Object String obj = s
    String int s = Integer.toString
    String Integer s = myInt.toString()
    String Object s = (String)obj;

    重要代码

    迭代器是允许以一致的方式对集合对象的元素进行访问的对象。每个实现Collection接口的类都有一个迭代器类,允许用户访问集合类中的每个元素。每个迭代器类必须至少实现如下Iterator接口

    public interface Iterator{
      Object next();
      boolean hasNext();
      void remove();
    }
    
  • 相关阅读:
    Codeforces 722C. Destroying Array
    Codeforces 722D. Generating Sets
    【BZOJ】3436: 小K的农场
    数论四·扩展欧几里德
    数论三·约瑟夫问题
    数论二·Eular质数筛法
    #1287 : 数论一·Miller-Rabin质数测试
    树的维护
    可持久化线段树
    【NOIP2016】天天爱跑步
  • 原文地址:https://www.cnblogs.com/miaowulj/p/14425704.html
Copyright © 2020-2023  润新知