zoukankan      html  css  js  c++  java
  • 抽象类练习和集合概念区分

    写一个抽象类,包括类shape,其中定义competeArea(float r);写两个子类(正方形Square、圆Circle),在其中实现对父类方法的重写;

    测试类Test,用父类对象的引用指向子类的实例,用该引用去调用相应的方法。

    public abstract class Shape {
        abstract float area();
        //因为难找到一个共性,只能抽象出一个面积。             
    /* 这里面可以有其它的普通方法,但若抽象方法,
    无大括号和方法体,不可以修饰构造器和属性。
    接口不能有其它的普通方法,其中有的抽象方
    法用于重写*/
    } class Circle extends Shape{ public int r; public Circle(int r){ this.r=r; } /* public int getR(){ return r; } public void setR(int r){ this.r=r; } //想给他赋值就用u.setXXX(); 取这个类的对象的某个值 就get,而这里是用数组对象来赋值,用for遍历并计算面积 */ public float area(){ float s=(float) (3.14*r*r); System.out.println("半径为"+r+"的圆形面积为:"+s); return s; } } class Square extends Shape{ public int a,b; public Square(int x,int y){ a=x; b=y; } public float area(){ float s=(float) (a*b); System.out.println("长宽分别为"+a+","+b+"的长方形面积为"+s); return s; } } public class AbstractArray{ public static void main(String[] args) { float area=0; Shape[] s={new Circle(3),new Circle(4),new Square(1,2),new Square(3,4)}; for (int i=0;i<s.length;i++){ area+=s[i].area(); } System.out.println("图形总面积为"+area); } }

    ArrayList/Linklist/Vector的特点分别是什么?HashMap和HashTable的区别?

           ArrayList是动态的数组,可动态地变化数组的长度,由于内部用数组实现的,所以,

    索引起来很方便,但不易增删,因为要挪动元素。

           LinkList内部实现是用双向链表,即每个节点存放着两个变量或引用(上一节点或下

    一节点的引用)。

           Vector类和ArrayList类似,内部也是动态地存储对象,提供的元素的操作方法和ArrayList

    类似。不同的是,Vector提供了一种返回元素枚举对象的elements()方法,这个枚举接口也提

    供了类似Iterator的功能,可以用强循环迭代所有元素,且从线程的角度来看它是同步的,即安

    全,但相对效率较低。

     

           HashMap是用Set类的方法进行存放对象,所以用“键”取值的效率比较高。另外,说说

    LikeHashMap,它是HashMap的子类,它是采用内部是采用双向链表,可以有序地存放对象。

           HashMap和HashTable类似也是用Hash方法对值进行索引,且性能差异不大,区别在于:

           1.HashMap最多只允许有一条记录为空,但HashTable不允许键值为空。

           2.HashMap把HashTable的contains方法去掉,改为了containsValue和containsKey。

    HashMap是java1.2引进来的,而HashTable是继承自Dictionary类。

           3.HashMap是不支持同步的,所以不安全,而Hashtable是同步的,不需要额外的增加

    同步机制,而HashMap需要。

           4.HashMap用Iterator进行遍历,HashTable用Enumeration进行遍历。

           5.HashMap和HashTable的默认Hash数组大小不一样。

           6.Hash值使用的不同,HashTable直接使用对象的HashCode。

     

    另外,HashMap插入和删除无固定顺序,是随机的,它适合插入、删除、定位等,若要讲顺序,

    最好用TreeMap。而LinkHashMap是HashMap的子类,且输出输出顺序相同,可按读取顺序来

    排列。

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    团队第一阶段冲刺评价
    冲刺(十)
    冲刺(九)
    冲刺(八)
    冲刺(七)
    冲刺阶段(12)
    冲刺阶段(11)
    与市面APP的对比
    团队绩效管理
    第一阶段意见汇总
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8470830.html
Copyright © 2011-2022 走看看