集合
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.任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同
本文为看恩吧原创文章,转载无需和我联系,但请注明来自knsay.com