集合
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