集合类和接口中的方法

1.Collection 接口:用于表示任何对象或元素组。

    (1) 单元素添加、删除操作:

   boolean add(Object o):将对象添加给集合

   boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o

  (2) 查询操作:

   int size() :返回当前集合中元素的数量

   boolean isEmpty() :判断集合中是否有任何元素

   boolean contains(Object o) :查找集合中是否含有对象o

   Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素
  (3) 组操作 :作用于元素组或整个集合

   boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素

   boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合

   void clear(): 删除集合中所有元素

   void removeAll(Collection c) : 从集合中删除集合c 中的所有元素

   void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素

  (4) Collection转换为Object数组 :

   Object[] toArray() :返回一个内含集合所有元素的array

   Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。

  Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。
1.2.Iterator 接口

Collection 接口的iterator()方法返回一个 Iterator。

    (1) boolean hasNext(): 判断是否存在另一个可访问的元素

    Object  next(): 返回要访问的下一个元素。如果到达集合结尾,则抛出

NoSuchElementException异常。

(2) void remove(): 删除上次访问返回的对象。

2.List接口

  List 接口继承了 Collection 接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。

  void add(int index, Object element): 在指定位置index上添加元素element

  boolean addAll(int index, Collection c): 将集合c的所有元素添加到指定位置index

  Object get(int index): 返回List中指定位置的元素

  int indexOf(Object o): 返回第一个出现元素o的位置,否则返回-1

  int lastIndexOf(Object o) :返回最后一个出现元素o的位置,否则返回-1

  Object remove(int index) :删除指定位置上的元素

  Object set(int index, Object element) :用元素element取代位置index上的元素,并且返回旧的元素

   ListIterator listIterator() : 返回一个列表迭代器,用来访问列表中的元素

   ListIterator listIterator(int index) : 返回一个列表迭代器,用来从指定位置index开始访问列表中的元素

3.Set接口及其实现

  HashSet是使用一个哈希表存储元素的,是非排序的,可以随机访问,是Set的最优性能实现.TreeSet实现了SortedSet接口,使用一个红黑树来存储元素,提供了元素的有序存储和访问.

  HashSet在底层实现上依赖于HashMap.

   public HashSet() {

 map = new HashMap<E,Object>();

    }

    public boolean add(E o) {

 return map.put(o, PRESENT)==null;

    }

    public boolean remove(Object o) {

 return map.remove(o)==PRESENT;

    }

    public boolean contains(Object o) {

       return map.containsKey(o);

    }

从代码可见,HashSet在底层借用HashMap,使用一个Object类型的哑元值作为HashSet中元素在底层HashMap存储中的映射值.它抓住了HashMap的键不允许重复的特性.对于add()中调用底层映射的put(),将欲添加的元素和一个PRESENT哑元值放入底层map.如果底层Map返回null,说明原来的集合中并不存在该键.

注意:对于Map接口的put()返回null时有两种解释,一是原来的Map中不包含该键;另一种可能是原来的Map中已经存储了该健,但该键映射到null.而在HashSet中的add()和remove()等中的返回null只有一种解释,即原来的集合不包含该元素.这是因为HashSet的底层的映射中存储的都是一个名为PRESENT的Object类型的对象,不可能是null.

4. Map接口

  (1) 添加、删除操作:

  Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像。如果该关键字已经存在,那么与此关键字相关的新值将取代旧值。方法返回关键字的旧值,如果关键字原先并不存在,则返回null

  Object remove(Object key): 从映像中删除与key相关的映射

  void clear(): 从映像中删除所有映射

  (2) 查询操作:

  Object get(Object key): 获得与关键字key相关的值,并且返回与关键字key相关的对象,如果没有在该映像中找到该关键字,则返回null

  boolean containsKey(Object key): 判断映像中是否存在关键字key

  boolean containsValue(Object value): 判断映像中是否存在值value

  int size(): 返回当前映像中映射的数量

  boolean isEmpty() :判断映像中是否有任何映射

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值