Java学习笔记--集合框架

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
  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 m)
    从指定映射中将所有映射关系复制到此映射中

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

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

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

  • entrySet()
    获取映射中的entry集合。eg:Set> entrySet = books.entrySet();

你可能感兴趣的:(Java学习笔记--集合框架)