03基础

集合

1.泛型类

public class Generic<E> {
    private E name;

    public E getName() {
        return name;
    }

    public void setName(E name) {
        this.name = name;
    }
}
public class Demo01 {
    public static void main(String[] args) {
        Generic gc = new Generic();
        gc.setName(1);
        System.out.println(gc.getName());

        Generic<String> gc1 = new Generic<>();
        gc1.setName("小明");
        System.out.println(gc1.getName());
    }
}

2.含有泛型的方法

public class GenericMethod {
//    泛型的标识随便定义
    public <M> void method01(M m){
        System.out.println(m);
    }

    public static <S> void method02(S s){
        System.out.println(s);
    }
}
public class DemoGenericMethod {
    public static void main(String[] args) {
        GenericMethod gm = new GenericMethod();
        gm.method01(10);
        gm.method01("小说");
        gm.method01(true);

        GenericMethod.method02(12);
        GenericMethod.method02("小刚");
        GenericMethod.method02(false);
    }
}

3.含有泛型的接口

public interface GenericInterface<E> {
    public abstract void method(E e);
}
public class GenericInterfaceImpl implements GenericInterface<String>{
    @Override
    public void method(String s) {
        System.out.println(s);
    }
}
public class DemoGenericInterface {
    public static void main(String[] args) {
        GenericInterfaceImpl gf = new GenericInterfaceImpl();
        gf.method("你好");
    }
}

(2)

public class GenericInterfaceImpl2<E>  implements GenericInterface<E> {
    @Override
    public void method(E e) {
        System.out.println(e);
    }
}
public class DemoGenericInterface2 {
    public static void main(String[] args) {
        GenericInterfaceImpl2 gf = new GenericInterfaceImpl2();

        gf.method(1);
        gf.method("哈哈");
    }
}

4.泛型的通配符 ?代表任意的数据类型  不能创建对象使用,只能作为方法的参数

public class GenericArray {
    public static void main(String[] args) {
        ArrayList<String> ls = new ArrayList<>();
        ls.add("ni");
        ls.add("men");
        ls.add("ai");

        printArray(ls);
    }
    public static void printArray(ArrayList<?> list){
        Iterator<?> it= list.iterator();
        while(it.hasNext()){
            Object o = it.next();
            System.out.println(o);
        }
    }
}

4.2泛型的上限和下限,

? extends Number       Number类的子类或本身
? super Number         Number类的父类或本身

5.

栈 先进后出 (只有一个出口),

队列 先进先出(一进一出), 

数组 查询快 增删慢(地址是连续的,增删都得新建数组),

链表 查询慢 增删快(地址不是连续的,每次都得从头查找)

    单向链表 不能保证元素的顺序(存储和取出元素的顺序可能不一致)

    双向链表 是有序集合,

红黑树 

     二叉树:分支不能超过两个  左子树,右子树

    排序树/查找树:在二叉树的基础上  左子树小,右子树大

    平衡树:左子树和右子树相等

    不平衡树:左子树不等于右子树

    红黑树: 约束1.节点可以是红色的或者黑色的2.根节点是黑色的3.叶子节点(空节点)是黑色的4.每个红色的节点的子节点都是黑色的5.任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同

打赏

看恩吧
网站不承担任何有关评论的责任
  • 最新评论
  • 总共条评论
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦