首页 技术 正文
技术 2022年11月17日
0 收藏 917 点赞 5,118 浏览 2002 个字

Collection<E>接口extends Iteratable<E>接口。

Iteratable<T>:实现接口使得对象能够成为“for-each loop”的目标,T是指iterator返回的元素类型

  操作: Iterator<T> iterator() 返回type T的元素的迭代器。

      forEach(Cosumer<> superT> action) default意味着没有任何访问修饰符的意思。这个动作提供给出每个元素的操作。

      Spliterator<T> spliterator()创造一个由Iterable描述的元素的spliterator

Collection<E>

  操作:

     基本操作:

          元素数量size();

          空判断isEmpty();

          移除元素:(1)删除特定元素(2)删除特定集合的元素(3)按条件删除(4)保留特定集合内的元素,其余全部删除(5)删除所有元素。  

            remove(Object o);removeAll(Collection<?> c);removeIf(Predicate<? super E> filter);retainAll(Collection<?> c);clear();

          添加元素 add(E e); addAll(Collection<? extends E> c)

          包含判断:(1)单个元素判断,(2)集合判断 contains(Object o);containsAll(Collection<?> c);  ?类型通配符

            集合的相等判断,需要集合hashcode值。

            equals(Object o);hashCode();返回集合类的hashcode,重写equal函数则必须重写hashcode函数。

     特殊操作:

        转换为数组。Object[] toArray() 返回一个包含所有元素的数组。<T> T[] toArray(T[] a);参数为要转换之后的数组要放置的容器。返回数组的运行时类型与指定数组的运行时类型相同。如  果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将根据指定数组的运行时类型和此 collection 的大小分配一个新数组。

              Stream<E> stream(); Stream<E> parallelStream()

AbstractCollection<E>   受保护的构造器

实现的接口中的函数:    

    contains(Object o):集合中可以添加空元素,当Object为null,必须在集合中找到为Null的元素。虽然null可以作为集合中的元素,但是对象比较时用的是equal函数,而Null对象不能直接调用equal函数,所以必须单独判断。

    removeAll(Collection<?> c), retainAll(Collection<?> c); remove(Object o); containsAll(Collection<?> c);addAll(Collection<? extends E> c);clear()

新添加的函数:

    Object[] toArray() 将对象返回为Object类的数组。这里考虑了集合的size可能与容器本身的个数不同。collection的元素比size算出的要小则创建新的数组,若比size大,则重新申请一个数组,并且复制r中的元素,然后赋值给r。

    T[] toArray(T[] A)(<T>表示这个方法是一个泛型方法,其中泛型参数名为T。)这里考虑了定义的数组A大小可能比应存放的数量(size())要小,因此会运用反射机制创建一个新的类作为返回,但是若发现collection中元素的个数(has.next())其实比a的容量要小,则把目前的元素放入a,然后返回。这个函数在添加对象时会做类型的强制转换,所以是可以支持集合类的类型与T不同。System.arraycopy()与Array.copy()

         这里涉及了两个数组复制的方法,Array.copyof()与System.arraycopyof().区别是Array中的赋值借助System中的复制实现,Array返回一个新创建的数组,而System中的copy在给定的数组之间复制。

    <T> T[] finishToArray(T[] r, Iterator<?> it)

    toString() : 返回[a,b,c]

 Iterator<E>提供几个基本操作: hasNext(), next(), remove()(删除迭代器上次返回的元素)

    

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,115
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,587
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,433
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,204
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,840
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,925