集合

一、Collection 单列集合最顶层接口 

  • List 接口(有序,有索引,可以存储重复的元素)
    • List体系的孩纸都有索引,可以存储重复的元素,存储的元素有序
    • ArrayList 类 数组结构
    • LinkedList 类 链表结构
  • Set 接口(无序,无索引,元素唯一)
    • 特点和List恰好相反,Set中存储的元素没有索引,而且存储的元素无序

二、Collection 中的成员方法

  • boolean add(E e):添加元素
  • boolean remove(Object o):从集合中移除元素
  • void clear():清空集合中的元素
  • boolean contains(Object o):判断集合中是否存在指定的元素
  • boolean isEmpty():判断集合是否为空
  • int size():集合的长度,也就是集合中元素的个数

三、集合的使用步骤:

  1. 创建集合对象
  2. 创建元素对象
  3. 添加元素
  4. 遍历集合

四、List特有的方法

  • void add(int index,E element):在指定位置添加元素
  • E remove(int index):删除指定位置的元素
  • E set(int index,E element):修改指定位置的元素
  • E get(int index):获取指定位置的元素
  • ListIterator<E> listIterator():返回此列表元素的列表迭代器

五、ConcurrentModificationException(并发修改异常)

  • 产生的原因:
    • 迭代器依赖于集合而存在,在判断成功后,集合中添加了新的元素,而迭代器并不知道,所有就报错了。
  • 解决
    • A:迭代器遍历的时候,我可以通过迭代器修改集合中的元素
      元素是跟在刚才迭代的元素后面的
    • B:集合遍历的时候,我可以通过集合对象修改集合中的元素
      元素是在最后添加的

六、集合三种遍历的方法

  • 迭代器遍历
  • 普通for循环遍历
  • 增强for:是for循环的一种,底层是迭代器实现的

七、HashMap(类)

  • 存储的是一对元素(key = value),HashMap中的key不能重复,并且key遵循唯一性原理依赖hashCode()和equals()方法
  • 常用功能:
    • 添加功能
      • V put(K key, V value):添加一个key=value键值对,当key不重复的时候,返回的是null
                       当添加重复的key的时候,重复的key对应的新的value值回覆盖掉老的value值
                       并且返回原有(老的)value值
    • 获取功能:
      • V get(Object key) //根据key(键)获取Map中对应的value(值)
      • int size() //返回Map中一共有多个键值对
      • Set<K> keySet():将Map所有的key封装到一个Set的集合
      • Collection<V> values():将Map中所有的value封装到一个Collection体系的集合
    • 判断功能
      • boolean containsKey(Object key) //是否包含指定的key
      • boolean containsValue(Object value) //是否包含指定的value
      • boolean isEmpty() //判断是Map否有键值对
    • 删除功能:
      • void clear()   //清空Map中的所有键值对
      • V remove(Object key)  //根据键删除键值对,返回是value
  • 两种遍历方式、
    • 利用keySet()方法遍历
      • a.首先map调用keySet方法,将Map中所有的key封装到一个Set集合中
        b.遍历这个装满key的Set集合
        c.在遍历的过程中利用Map的get(key)方法获取对应的value
    • 利用entrySet()方法遍历
    • 	Set<Entry<String, String>> entrySet = hashMap.entrySet();
      		for (Entry<String, String> entry : entrySet) {
      
      			String key = entry.getKey();
      			String value = entry.getValue();
      			System.out.println(key + "--" + value);
      		}

       

posted @ 2019-07-31 19:09  我の女王  阅读(99)  评论(0编辑  收藏  举报