zoukankan      html  css  js  c++  java
  • Java基础集合简单总结

    集合

    Collection单列集合有List 和 Set

    List集合有:

    ArrayList集合

    特点:
    1.存取有序 可以重复 有索引
    2.底层是数组实现,查询快,增删慢
    ArrayList底层:

    1.ArrayList底层是一个数组

    2.当初始化ArrayList,数组的长度为0

    3.当第一次添加的时候,数组的长度为10

    4.以后添加时,如果数组的长度不满足时,进行扩容 ,按1.5来进行扩容

    5.扩容之后,将原数组中的元素拷贝到新的数组中

    ArrayList的特有方法
    方法名描述
    void add(int index,E element) 在此集合中的指定位置插入指定的元素
    E remove(int index) 删除指定索引处的元素,返回被删除的元素
    E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
    E get(int index) 返回指定索引处的元素
    ArrayList是Collection接口的实现类调用方法:
    方法名说明
    boolean add(E e) 添加元素
    boolean remove(Object o) 从集合中移除指定的元素
    boolean removeIf(Object o) 根据条件进行移除
    void clear() 清空集合中的元素
    boolean contains(Object o) 判断集合中是否存在指定的元素
    boolean isEmpty() 判断集合是否为空
    int size() 集合的长度,也就是集合中元素的个数

    LinkedList集合

    特点:

    1.存取有序 可以重复 有索引

    2.底层是链表结构实现,查询慢 增删快

     

    特有方法:
    方法名说明
    public void addFirst(E e) 在该列表开头插入指定的元素
    public void addLast(E e) 将指定的元素追加到此列表的末尾
    public E getFirst() 返回此列表中的第一个元素
    public E getLast() 返回此列表中的最后一个元素
    public E removeFirst() 从此列表中删除并返回第一个元素
    public E removeLast() 从此列表中删除并返回最后一个元素

    set集合有

    hashset集合

    特点

    1.不可以存储重复元素 存储顺序不一致 没有索引 底层是hash表

    2.没有索引,可以使用迭代器和增强for进行操作

     

    HashSet是Collection接口的实现类调用方法:
    方法名说明
    boolean add(E e) 添加元素
    boolean remove(Object o) 从集合中移除指定的元素
    boolean removeIf(Object o) 根据条件进行移除
    void clear() 清空集合中的元素
    boolean contains(Object o) 判断集合中是否存在指定的元素
    boolean isEmpty() 判断集合是否为空
    int size() 集合的长度,也就是集合中元素的个数

     

    TreeSet集合

    特点

    1.不能存储重复的元素 没有索引

    2.可以将元素按照规则进行排序

    3.没有索引,可以使用迭代器和增强for进行操作

    4.TreeSet的原理是红黑数,先获取左边,再获取中间,最后获取右边

     

    TreeSet是Collection接口的实现类调用方法:
    方法名说明
    boolean add(E e) 添加元素
    boolean remove(Object o) 从集合中移除指定的元素
    boolean removeIf(Object o) 根据条件进行移除
    void clear() 清空集合中的元素
    boolean contains(Object o) 判断集合中是否存在指定的元素
    boolean isEmpty() 判断集合是否为空
    int size() 集合的长度,也就是集合中元素的个数

     

    排序的方式有:

    1.自然排序Comparable的使用

    1. 使用空参构造创建TreeSet集合

      • 用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的

    2. 自定义的Student类实现Comparable接口

      • 自然排序,就是让元素所属的类实现Comparable接口,重写compareTo(T o)方法

    3. 重写接口中的compareTo方法

      • 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

    2.比较器排序Comparator的使用

    • 用TreeSet集合存储自定义对象,带参构造方法使用的是比较器排序对元素进行排序的

    • 比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法

    • 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

     

     

    Map双列集合有HashMap和 TreeMap

    Map集合的定义:

    Map集合又称为双列集合,双列集合中每个元素中有两个值,主要用于存储具有映射关系的数据,这种关系是一一对应的

    Map集合的特点:

    键不能重复,值可以重复

    键与值之间是一一对应的关系

    (键+值)这个整体我们称之为"键值对"或"键值对对象",在Java中又叫"Entry对象"

    HashMap集合

    特点:2

    HashMap底层是哈希表结构

    依赖hashCode方法和equals方法保证键的唯一

    如果键要存储自定义对象,需要重写hashCode和equals方法

     

    方法介绍

    方法名说明
    V put(K key,V value) 添加元素
    V remove(Object key) 根据键删除键值对元素
    void clear() 移除所有的键值对元素
    boolean containsKey(Object key) 判断集合是否包含指定的键
    boolean containsValue(Object value) 判断集合是否包含指定的值
    boolean isEmpty() 判断集合是否为空
    int size() 集合的长度,也就是集合中键值对的个数

    第一种遍历方式

    先把双列集合转为单列集合,再进行遍历

    方法名说明
    Set<K> keySet() 获取所有键的集合
    V get(Object key) 根据键获取值

    第二种遍历方式

    先把双列集合转为单列集合,再进行遍历

    方法名说明
    Set<Map.Entry<K,V>>entrySet() 获取所有键值对对象集合
    K getKey() 获得键值
    V getValue() 获得值

    TreeMap集合

    特点: 可以排序

    TreeMap底层是红黑树结构

    依赖自然排序或者比较器排序,对键进行排序

    如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则

     

    方法和HashMap一样

    第一种遍历方式

    先把双列集合转为单列集合,再进行遍历

    方法名说明
    Set<K> keySet() 获取所有键的集合
    V get(Object key) 根据键获取值

    第二种遍历方式

    先把双列集合转为单列集合,再进行遍历

    方法名说明
    Set<Map.Entry<K,V>>entrySet() 获取所有键值对对象集合
    K getKey() 获得键值
    V getValue() 获得值
  • 相关阅读:
    java代码读取yarn聚合目录日志
    Java内存区域的划分和异常
    Hbase restFul API
    Sql Server函数全解(一)字符串函数
    Sql Server之数据类型详解
    Sql Server之使用T_SQL创建,修改,查看数据库信息
    《Java编程思想》笔记 第一章 对象导论
    spring之Autowire
    spring之scope作用域
    spring之注入类型
  • 原文地址:https://www.cnblogs.com/sunhao410526/p/14209181.html
Copyright © 2011-2022 走看看