zoukankan      html  css  js  c++  java
  • 集合

    数据结构:
    代表的就是数据的存储方式;
    常见的数据接口:
    线性表、链表、栈、队列、树、图、哈希表;
    栈:先进后出,后出先进;
    队列:先进先出,后进后出;
    链表:把多个节点连接起来;
    节点:分为数据域和指针域,数据域代表的是要存储的数据,指针域代表的是下一个数据对应的位置,或者是上一个数据对应的位置;
     
    ArrayList、LinkedList、Vector的区别:
    ArrayList:
    底层: 数组
    线程不安全:执行效率高,有安全隐患;
    LinkedList:
    底层: 链表
    线程不安全:执行效率高,有安全隐患;
    Vector:
    底层: 数组
    线程安全: 执行效率低,安全;
     
    LinkedList:
    public void addFirst(Object obj):把给定的元素添加的集合的第一个位置;
    public void addLast(Object obj):把给定的元素添加到集合的最后一个位置;
    public Object getFirst():获取该集合中第一个位置的元素;
    public Object getLast():获取该集合汇总最后一个位置上的元素;
    public Object removeFirst():删除集合中第一个位置的元素,返回被删除的元素;
    public Object removeLast():删除集合中最后一个位置的元素,返回被删除的元素;
     
    Vector:
    public void addElement(E obj) --- add(Object obj);
    public Object elementAt(int index) --- get(int index);
    public Enumeration<E> elements() ---- iterator() Enumeration枚举类型;
    public void removeAllElements() --- clear();
    public boolean removeElement(Object obj) --- remove(Object obj);
    public void removeElementAt(int index) --- remove(int index);
    public void setElementAt(E obj, int index) --- set(Object obj,int index);
     
    Enumeration: 枚举(迭代器对象) :
    boolean hasMoreElements() : 判断是否有下一个元素 --- hasNext();
    Object nextElement() : 获取下一个元素 --- next();
     
    增强for循环:
    格式:
    for (数组元素的类型或者集合元素的类型 变量名 : 需要遍历的数组名 或者 集合名) {
    变量名,代表着每一个数组元素 或者 代表着每一个集合元素
    }
     
    泛型:
    作用:约束存储元素的数据类型;
    使用的范围:类上、接口上、方法上;
     
    泛型类:
    class Tool<T> {
    public void method(T t){
    code....
    }
    }
    泛型方法:泛型方法需要定义在返回值类型的前面;
    class Tool<T> {
    //普通方法
    public <K> K method(K num){
    code....
    return num;
    }
    //静态方法
    public static <Q> Q function(Q q){
    code...
    return q;
    }
    }
    泛型接口:
    interface Tool<K> {
    public abstract void method(K num);
    }
    //直接将接口中的泛型实现
    class Demo implements Tool<Integer> {
    public void method(Integer num){
    code...
    }
    }
    在类上不明确泛型的具体类型,在创建对象的时候在明确类型:
    class Demo<Q> implements Tool<Q> {
    public void method(Q num){
    code...
    }
    }
    泛型通配符:
    当使用泛型的时候,又不明确定义什么类型的泛型合适,这个时候可以定义一个通用的泛型类型?
    泛型的边界:
    上边界:?extends E;
    ? 代表着数据类型可以是E数据类型本身或者是E数据类型的子类;
    下边界: ? super E:
    ? 代表着的数据类型可以是E数据类型本身或者是E数据类型的父类;
    泛型使用的注意事项:
    1: ArrayList<Person> list = new ArrayList<Girl>();
    报错, 要求左右两边泛型的数据类型必须一致
    2:泛型是一个编译期的约束,当编译成.class文件后, 该.class文件中没有泛型的约束;
    3:jdk7 : 菱形泛型;
     
    Stack: 集合 :
    底层: 栈;
    方法:
    public E push(E item):把项压入堆栈顶部;
    public boolean empty():测试堆栈是否为空;
    public E peek():查看堆栈顶部的对象,但不从堆栈中移除它;
    public E pop():移除堆栈顶部的对象,并作为此函数的值返回该对象;
    public int search(Object o):返回对象在堆栈中的位置,以 1 为基数;
  • 相关阅读:
    footer在最低显示
    jQuery toast message 地址 使用
    linux 获取经过N层Nginx转发的访问来源真实IP
    Java Json格式的字符串转变对象
    多个机器获取微信access-token导致的有效性问题
    站点技术---301重定向
    C++技术问题总结-第8篇 STL内存池是怎么实现的
    IIS中遇到无法预览的问题(HTTP 错误 401.3
    梯度下降深入浅出
    COM-IE-(2)
  • 原文地址:https://www.cnblogs.com/yuhudashen/p/7886206.html
Copyright © 2011-2022 走看看