您的位置:首页 > 其它

栈和堆

2016-04-18 16:12 246 查看
【栈和堆】

栈:先进后出,后来先出

堆:先进先出 ,后来后出

定义泛型类:就是把<>放在类上

一个大写字母代表一个类型。

定义泛型【类】格式:

public class 类名<E>{}

定义泛型【方法】格式

public <T> void show(T t){}

把明确类型推出到了调用方法上。

定义泛型【接口】格式

public interface 接口名<T>{

public abstract void show(T t);

}

【实现】泛型接口格式

第一种:在实现泛型接口时明确泛型的类型。

public class 类名 implements 泛型接口<String>{

public void show(String s);

}

第二种:在类上继续加上泛型

public class 类名<T> implements 泛型接口<T>{

public void show(T t){}

}

泛型的通配符【?】

-----------------------例子1----------------

class Animal{}

class Dog extends Animal{}

class Pag{}

//向下限定

ArrayList<? extends Animal> al=new ArrayList<Animal>();

ArrayList<? extends Animal> a2=new ArrayList<Dog>();

ArrayList<? extends Object> a3=new ArrayList<Pag>();

ArrayList<? extends Object> a4=new ArrayList<Object>();

//<? extends Object>表示只有继承了Object类的子类才能实例化该泛型

//向上限定

ArrayList<? super Animal> aal=new ArrayList<Animal>();

ArrayList<? super Object> aa2=new ArrayList<Object>();

ArrayList<? super Dog> aa3=new ArrayList<Dog>();

ArrayList<? super Dog> aa4=new ArrayList<Animal>();

ArrayList<? super Dog> aa5=new ArrayList<Object>();

//<? super Animal>表示只有自己或者父类才能实例化该类。

------------------------end--------------------------

【枚举类型】

关键字enum

定义格式: enum 类名{}

----------------------------------例子知识的---------------------------

/**

* 自定义一个枚举类

* 枚举要注意的细节:

* 1.枚举类也是一个特殊的类。

* 2.枚举值默认的修饰符是public static final.

* 3.枚举值的数据类型,是枚举值所属类的类型,枚举值是指向了本类的对象。

* 4.枚举类的默认构造方法修饰符为private

* 5.枚举值必须要位于枚举类的第一行语句

* 6.枚举类可以定义自己的成员变量和成员函数。

* 7.枚举类可以自定义构造函数,但是构造函数的修饰符必须是private

* 8.枚举类可以存在抽象的方法,但是枚举值必须要实现抽象的方法。

*

*/

enum Sex{

man,woman,man_01("男");//枚举值

// man_02("女");//错误,枚举值必须要位于枚举类的第一行语句

//public static final Sex man=new Sex(); 相当于man

String value;//定义枚举类的成员变量

private Sex(){}

//构造函数

private Sex(String str){

this.value=str;

}

//定义枚举类的成员函数

public void getValue(){

System.out.println(this.value);

}

}

-------------------------------------------------列子结束end---------------------------------

-------------------------------------------------例子2 枚举类中的抽象方法----------------------------------------

/**

* 枚举类,定义其抽象方法

* 枚举值可以有抽象方法,但枚举值必须要实现抽象方法。

* @author Administrator

*

*/

enum Man{

Sex{

public void Man_run(){

}

},

Sex_man("男"){

public void Man_run(){

System.out.println("我是枚举类的抽象方法。");

}

};

public String value;

//构造方法

private Man(){}

//构造方法

private Man(String str){

this.value=str;

}

//抽象方法

public abstract void Man_run();

}

---------------------------------------------------------end结束----------------------------------------------------------

/**

* 复习集合

* 单列集合

* -------------| Collection 单列集合的根接口

* -----------------| List 如果是实现了List接口集合类具备的特点:有序,可重复。

* ---------------------| ArrayList 底层使用Object数组实现的。特点:查询速度快,增删慢。

* ---------------------| LiskedList 底层是使用了链表数据结构实现的。特点:查询慢,增删块。

* ---------------------| Vector 底层使用Object数组实现的,实现与ArrayList是一样,只不过是线程安全的,操作效率低。

*

* -----------------| Set 如果是实现了Set接口集合具备的特点:无序,不可重复

* ---------------------| HashSet 底层使用的是哈希表具备的特点:无序,不可重复。

* ---------------------| TreeSet 底层使用二叉树实现。

*

*

* 双列集合:

* -------------| Map (只需要把Map接口的方法全部练习一遍即可)

* ----------------| HashMap 底层使用的是哈希表实现的。

* ----------------| TreeMap 底层使用二叉树实现

* ----------------| HashTable

*

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: