美文网首页
Java学习笔记--集合框架

Java学习笔记--集合框架

作者: Allens_Lee | 来源:发表于2019-11-06 15:34 被阅读0次

    Collection接口

    1. 是List、Set和Queue接口的父接口
    2. 定义了可用于操作List、Set、Queue的方法--增删改查

    1、List接口及其实现类--ArrayList

    1. List是元素有序并且可以重复的集合,被称为序列。
    2. List可以精准的控制每个元素的插入位置,或者删除某个位置元素。
    3. ArrayList--数组序列,是List的一个重要实现类。
    4. ArrayList底层是由数组实现的。

    注意:对象存入集合都变成Object类型,取出时需要类型转换。

    2、ArrayList常用的方法

    • 添加

      ArrayList list = new ArrayList();
      //直接在列表后追加
      list.add(obj);
      //在指定位置添加
      list.add(0, obj);
      Object[] objs = {obj1, obj2};
      //在列表后追加一个新的列表
      list.add(Arrays.asList(objs));
      //在指定位置添加一个新的列表
      list.add(0, Arrays.asList(objs))
      
    • 获取List中元素的个数

      int size = list.size();
      
    • 获取List中的元素

      Object obj = list.get(index);
      
    • 修改List中某个元素的值

      //代表指定索引为0的元素替换为obj5
      list.set(0, obj5);
      
    • 删除List中的某个元素

      //从列表中移除第一次出现的指定元素(如果存在)。如果列表不包含元素,则不更改列表。
      list.remove(obj5);
      //移除列表中指定位置的元素。将所有的后续元素向左移动(将其索引减1)。返回从列表中移除的元素。
      list.remove(index);
      //从列表中移除指定collection中包含的其所有元素。
      Object[] objs = {obj1, obj2};
      list.removeAll(Arrays.asList(objs));
      
    • 获取某个元素在List中的索引位置

      //indexOf返回某个元素在list中第一次出现的索引
      int index = list.indexOf(obj);
      //lastIndexOf返回某个元素在list中最后一次出现的索引
      int lastIndex = list.lastIndexOf(obj);
      
    • 判断list是否包含某个或多个对象

      boolean exist = list.contains(obj);
      Object[] objs = {obj1, obj2};
      boolean exist1 = list.containsAll(Arrays.asList(objs));
      

    注意:
    1、如果想要在某个List中只放某个指定类及其子类的实例时,需要使用到泛型,泛型集合中,不能添加泛型规定的类型及其子类型以外的对象,否则会报错!
    2、泛型不能使用基本类型!

    3、Set接口及其实现类--HashSet

    1. Set是元素无序并且不可以重复的集合,被称为集。
    2. HashSet -- 哈希集,是Set的一个重要实现类。

    注意:Set中的元素是不可重复的

    4、Map接口和HashMap类

    1. Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value。
    2. Map中的健值对以Entry类型的对象实例形式存在。
    3. 键(key值)不可重复,value值可以。
    4. 每个键最多只能映射到一个值。
    5. Map接口提供了分别返回key值集合,value值集合以及Entry(键值对)集合的方法。
    6. Map支持泛型,形式如:Map<K,V>。
    7. HashMap是Map接口的一个重要实现类,也是最常用的,基于哈希表实现。
    8. HashMap中的Entry对象是无序排列的。
    9. Key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key值不可重复)。

    5、HaseMap常用方法

    • clear()
      从此映射中移除所有映射关系。

    • containsKey(Object key)
      如果此映射包含指定键的映射关系,则返回true。

    • containsValue(Object value)
      如果此映射将一个或多个键映射到指定值,则返回true。

    • entrySet()
      返回此映射中包含的映射关系的set视图

    • equals(Object o)
      比较指定的对象与此映射是否相等

    • get(Object key)
      返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回null

    • hashCode()
      返回此映射的哈希码值

    • isEmpty()
      如果此映射未包含键-值关系,则返回true

    • keySet()
      返回此映射中包含的键的set视图

    • put(K key, V value)
      将指定的值与此映射中指定键关联,如果不存在该key,则新建key-value对,否则将原有的key对应的value修改为新的value。

    • putAll(Map<? extends K,? extends V> m)
      从指定映射中将所有映射关系复制到此映射中

    • remove(Object key)
      如果存在一个键的映射关系,则将其从此映射中移除

    • size()
      返回此映射中的键-值映射关系数

    • values()
      返回此映射中包含的值的Collection视图

    • entrySet()
      获取映射中的entry集合。eg:Set<Map.Entry<String, Book>> entrySet = books.entrySet();

    相关文章

      网友评论

          本文标题:Java学习笔记--集合框架

          本文链接:https://www.haomeiwen.com/subject/bcbubctx.html