11、持有对象

一、基本概念

  • 容器类类库的用途是保存对象
    1、Collection:一个独立元素的序列
    2、Map:一组成对的“键值对”对象,允许你用键来查找值。映射表,允许我们用另一个对象来查找某个对象,它也被称为关联数组。
  • 集合方法Collection
1、添加
boolean add(E e)  添加1个 
boolean addAll(collection c) 添加指定容器中的所有元素
2、删除
void clear()  清空所有
boolean remove(Object o) 删除一个
boolean removeAll(collection c) 删除指定容器中的所有元素
boolean retainAll(collection c) 移除指定容器中不同的元素
3、获取长度
int size()
4、判断
boolean isEmpty() 是否为空  
boolean contains(Object o) 包含某个元素
boolean containsAll(Collection c)包含某个指定容器中的元素
5、将集合转成数组
Object[] toArray()
6、取出集合元素
Iterator iterator()
获取集合中元素上迭代功能的迭代器对象

迭代:取出元素的一种方式
迭代器:具备迭代功能的对象。NoSuchElementException
迭代器是取出Collection集合元素的公共方式

二、List(有序的Collection)

  • List特有的方法(围绕索引来定义)
1、添加元素
void add(int index, E element) 在List指定位置添加元素
void addAll(int index, Collection c)
2、获取元素
E get(int index)  获取元素
List subList(int fromIndex, int toIndex)  获取指定位置之间的元素
3、删除
boolean remove(int index)  移除列表指定位置的元素
4、修改
E set(int index, E element)  用指定元素替换列表中指定位置的元素
5、获取索引
int indexOf(Object o)  获取第一次出现指定元素的索引
int lastIndexOf(Object o)  获取最后一次出现指定元素的索引
6、取出集合元素
ListIterator listIterator(int n)  指定返回第一个元素的索引值
  • List承诺可以讲元素维护在特定的序列中。可以对List中每个元素的插入位置进行精确控制。
  • 1、ArrayList,长于随机访问元素,但进行插入和移除操作时较慢
    2、LinkedList,通过较低代价的在List中进行插入和删除操作,提供了优化的顺序访问。功能较强。

三、迭代器

  • 迭代器设计模式:迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象。
    迭代器通常被称为轻量级对象,创建它的代价小
  • 使用迭代器:
1、使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素
2、使用next()获得序列的下一个元素
3、使用hasNext()检查序列中是否还有元素
4、使用remove()将迭代器新近返回的元素删除
  • 特殊的迭代器 ListIterator,可以双向移动
    新增方法
void add(E e)  插入元素
boolean hasPrevious()  逆向遍历
int nextIndex()  返回对next后续调用元素索引
int previousIndex()  返回对previous后续调用元素索引
E previous()  返回列表前一个元素
void set(E e)  用指定元素替换返回的元素

四、LinkedList

  • LinkedList,通过较低代价的在List中进行插入和删除操作,提供了优化的顺序访问。功能较强。
    添加了可以使其用作栈、队列、或双端队列的方法。
    新增方法
1、添加元素
void addFirst(E e)  将指定元素插入此列表开头
void addLast(E e)  将指定元素插入此列表结尾
boolean offerFirst(E e)  在此列表开头插入指定元素
boolean offerLast(E e)  在此列表结尾插入指定元素
2、获取元素
E getFirest();  返回列表的第一个元素
E getLast();  返回列表的最后一个元素
3、删除元素
E removeFirst()  移除并返回列表第一个元素
E removeLast()  移除并返回列表最后一个元素
boolean removeFirstOccurrence(Object o)  移除此列表第一次出现的指定元素
boolean removeLastOccurrence(Object o)  移除此列表最后一次出现的指定元素
4、Queue集合的方法
E element();  返回列表的第一个元素
boolean offer(E e);  将指定元素添加到列表的末尾
E peek();  同 element(),但是在列表为空时返回null
E  poll(); 同remove(), 移除并返回列表第一个元素,但是在列表为空时返回null
5、迭代器

五、Set

  • Set不保存重复的元素,它会阻止这一现象。
    Set常用来测试归属性,可以很容易的询问某个对象是否在Set中,所以查找成为了Set中最重要测操作。
    HashSet,专门对快速查找进行了优化
  • Set就是Collection,只是行为不同。Set是基于对象的值来确定归属性的。

六、Map

  • 将对象映射到其他对象的能力是一种解决编程问题的杀手锏。
    Map基本方法
1、取值
V get(Object key);  返回指定键所对应的值
Set keySet();  返回此映射中包含的 键 的Set视图
Set> entrySet(); 返回此映射中包含的映射关系的Set视图
Collection values();  返回此映射中包含值的Collection视图
2、关联
V put(K key, V value)将指定的键与值关联
void putAll(Map, m)  从Map中复制映射
3、删除映射关系
V remove(Object k)  删除指定键的映射关系
4、总数
int size()
5、判断
boolean containsKey(Object Key)
boolean containsValue(Object Key)

你可能感兴趣的:(11、持有对象)