Java学习笔记十一--集合二

  1. set中的add方法不能存在重复元素,,其重写equals和hashcode方法,

  2. 常见的实现类有Hashset(),Linkedhashset,Treeset

  3. HashSet方法

    1. 保证唯一性是通过hashcode和equals方法;

    2. 哈希表底层使用数组机制,数组中存储对象,而这些对象的存储位置比较特殊,会根据这些对象的特殊数据结合相应的算法,计算出对象的位置,然后存放在数组中,这样的数组叫哈希数组,也就是哈希表。

  4. 写自定义类(有属性的)必须重写hashcode和equals,toString方法

 

  1. 返回值 方法名 作用
    void add(index,elemnet) 在指定的索引处添加元素
    object get(index) 返回指定索引处的元素
    int indexOf(object) 元素第一次出现的位置
    int lastindexof(object) 元素最后一次出现的位置
    object set(index,object) 替换指定索引处的为指定对象
    boolean addAll(index,collection) 添加指定的集合到当前集合的指定索引处
    object remove(int) 删除当前集合中指定索引index处的元素,并返回被删除的元素
    List sublist(int fromindex,int toindex) 返回当前集合中指定索引fromindex到toindex处的所有元素组成的子集合
  2. ArrayList札记

    1. 数据结构是数组

    2. 特点:

      1. 增删慢,查询快;
      2. 其底层数组默认容量为10,新元素增加自动增加
  3. LinkedList概述

    1. 底层数据存储结构式链表结构

    2. 增删快,查询慢,另外还实现了Deque接口,因此可以被当做双端对列和栈使用

    3. 设计了很多的首尾操作的方法(e 为泛型的通配符)

    4. 特有方法合集:

返回值 方法名 作用
void addFirst(e e) 将指定元素e插入当前集合的开头
void addLast(e e) 将指定元素e插入当前集合的末尾
E getFirst() 获取当前集合中的第一个元素
E getLast() 获取当前集合中的最后一个元素
e removeFirst() 删除当前集合中的第一个元素
e removeLast() 删除当前集合中最后一个元素
  1. ListIterator

  2. 提供了listIterator()方法,获取listIterator对象,专门用来迭代list集合,ListIterator接口继承于Iterator接口

返回值 方法名 作用
boolean hasprevious() 判断是否有下一个元素
object previous() 获取迭代的上一个元素
void add() 在指定位置添加元素
  1. Vector向量

    1. list接口的实现类,底层基于数组,默认容量10,每次增加一倍,是一个线程安全的集合

    2. Vector<String> vc=new Vector<String>();
      // create one vector collection;
      vc.capacity();
      // get vector collection capacity;
  2. Stack(栈)

    1. list集合的实现类,继承了vector,遵循先进后出的原则

    2. 名词解释:

      1. 栈顶元素:最后入栈的元素
      2. 栈底元素:最先入栈的元素
      3. 入栈/压栈:将元素放入栈中
      4. 出栈/弹栈:将元素从栈中取出
    3. Stack<String> s=new Stack<String>();
      // create onr stack collection
      s.push("xxxx");
      // 压栈
    4. 返回值 方法名 作用
      E push(E item) 将指定的元素item压入当前栈中
      E(synchronized) peek() 获取栈顶元素,不删除
      E(synchronized) pop() 出栈,并删除栈顶元素
      int(synchronized) search() 获取时从栈顶到栈底的顺序开始查找,以1为基数,若没有返回-1;
  3. Queue队列

    1. collection接口下的子接口,底层是队列的数据结构存储,遵循先进先出,后进后出的原则,最先放进去的元素叫队头元素,最后放进去的元素叫队尾元素

    2. Queue q = new ConcurrentLinkedQueue();
      // 创建队列对象
      q.offer("xxxxx");
      // 插入队列元素
    3. 常用方法

      返回值 方法名 作用
      boolean offer(E e) 插入元素,成功true,失败false
      E peek() 获取队头的元素,成功则输出,反之为null
      E element() 获取队头的元素,失败则抛出NosuchElementException(没有元素异常)
      E poll() 出队移除队头元素,失败返回null
      E remove() 移除队头元素,失败则抛出异常

猜你喜欢

转载自www.cnblogs.com/sunTyphonn/p/11768360.html