黑马程序员技术交流社区

标题: 集合 [打印本页]

作者: wuxingqueqian.    时间: 2019-10-16 15:35
标题: 集合
一、Collection& 集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变
& Collection集合概述:  是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

                       JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
& 方法:
方法名
说明

boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
void   clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
& 集合的遍历:
迭代器,集合的专用遍历方式
Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的
二、List

& List集合概述:
有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
与Set集合不同,列表通常允许重复的元素

& List集合特点:有索引;可以存储重复元素;元素存取有序
& 方法:
方法名
描述

void add(int index,E   element)在此集合中的指定位置插入指定的元素
E remove(int   index)删除指定索引处的元素,返回被删除的元素
E set(int index,E   element)修改指定索引处的元素,返回被修改的元素
E get(int   index)返回指定索引处的元素& 并发修改异常:迭代器遍历的过程中,通过集合对象修改了集合中的元素,造成了迭代器获取元素中判断预期修改值和实际修改值不一致,则会出现:ConcurrentModificationException

  解决的方案:        用for循环遍历,然后用集合对象做对应的操作即可
&   ListIterator介绍:
通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代器
用于允许程序员沿任一方向遍历的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
& 增强for循环:for(元素数据类型 变量名 : 数组/集合对象名) {    循环体;}
&  栈结构:先进后出    队列结构:先进先出      数组结构:查询快、增删慢      队列结构:查询慢、增删快
&  ArrayList集合:底层是数组结构实现,查询快、增删慢                    LinkedList集合:底层是链表结构实现,查询慢、增删快
&  LinkedList的特有方法:
方法名
说明

public void addFirst(E e)在该列表开头插入指定的元素
public void addLast(E e)将指定的元素追加到此列表的末尾
public E getFirst()返回此列表中的第一个元素
public   E getLast()返回此列表中的最后一个元素
public E removeFirst()从此列表中删除并返回第一个元素
public   E removeLast()从此列表中删除并返回最后一个元素三、Set    Hash
& 特点:元素存取无序  没有索引、只能通过迭代器或增强for循环遍历     不能存储重复元素
& 哈希值:
哈希值简介:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
如何获取哈希值:Object类中的public int hashCode():返回对象的哈希码值
哈希值的特点:同一个对象多次调用hashCode()方法返回的哈希值是相同的
                          默认情况下,不同对象的哈希值是不同的。而重写hashCode()方法,可以实现让不同对象的哈希值相同
& HashSet集合的特点:
                     底层数据结构是哈希表
                     对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致
                     没有带索引的方法,所以不能使用普通for循环遍历
                     由于是Set集合,所以是不包含重复元素的集合
& HashSet集合保证元素唯一性的图解:

& LinkedHashSet集合特点:
            哈希表和链表实现的Set接口,具有可预测的迭代次序
            由链表保证元素有序,也就是说元素的存储和取出顺序是一致的
            由哈希表保证元素唯一,也就是说没有重复的元素
& TreeSet集合概述:元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法
                                              TreeSet():根据其元素的自然排序进行排序
                                              TreeSet(Comparator comparator) :根据指定的比较器进行排序

                                没有带索引的方法,所以不能使用普通for循环遍历
                               由于是Set集合,所以不包含重复元素的集合









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2