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的子类,且输出输出顺序相同,可按读取顺序来

    排列。

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8470830.html
Copyright © 2011-2022 走看看