前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Collection

Collection

原创
作者头像
想名字好难
修改2021-04-06 11:41:03
3060
修改2021-04-06 11:41:03
举报
文章被收录于专栏:个人学习记录

Collection 作为集合的一个根接口,定义了一组对象和它的子类需要实现的 众多方法

1、基本操作

代码语言:txt
复制
 /**
  * 返回此集合中的元素数。 如果此集合包含的元素个数多于Integer.MAX_VALUE,则返回Integer.MAX_VALUE
  */
int size();
代码语言:txt
复制
/**
 * 判断集合是否为空
 */
boolean isEmpty();
代码语言:txt
复制
/**
 * 判断该集合是否包含指定元素
 */
boolean contains(Object o);
代码语言:txt
复制
/**
 *返回迭代器,不保证顺序
 */
Iterator<E> iterator();
代码语言:txt
复制
/**
 * 添加一个元素
 */
boolean add(E e);
代码语言:txt
复制
/**
 * 删除一个元素
 */
boolean remove(Object o);

2、集合转化为数组

代码语言:txt
复制
/**
 * 返回一个包含此集合中所有元素的数组。如果此集合保证其迭代器返回其元素的顺序,则此方法必须以相同的顺序返回元素。
 */
Object[] toArray();
代码语言:txt
复制
/**
 * 返回一个包含集合中所有元素的数组,运行时根据集合元素的类型指定数组的类型
 */
<T> T[] toArray(T[] a);

3、对集合进行操作

代码语言:txt
复制
/**
 * 是否包含指定集合 c 的全部元素
 */
boolean containsAll(Collection<?> c);
代码语言:txt
复制
/**
 * 将指定集合 c 中的所有元素添加到此集合中,如果集合有改变返回true
 */
boolean addAll(Collection<? extends E> c);
代码语言:txt
复制
/**
 * 删除本集合中和 c 集合中一致的元素,如果集合有改变就返回 true
 */
boolean removeAll(Collection<?> c);
代码语言:txt
复制
/**
 * 保留本集合与 c 集合的交集,如果集合有改变就返回 true
 */
boolean retainAll(Collection<?> c);
代码语言:txt
复制
/**
 * 删除所有元素
 */
void ();

4、新增

代码语言:txt
复制
/**
 * 作用是按照一定规则过滤集合中的元素
 * jdk 1.8
 */
default boolean removeIf(Predicate<? super E> filter) {
    Objects.requireNonNull(filter);
    boolean removed = false;
    final Iterator<E> each = iterator();
    while (each.hasNext()) {
        if (filter.test(each.next())) {
            each.remove();
            removed = true;
        }
    }
    return removed;
}


//使用实例
Collection<Person> collection = new ArrayList();

//lambda表达式
collection.removeIf(
    person -> person.getAge() >= 15
);
//或者
collection.removeIf(new Predicate<Person>() {
    @Override
    public boolean test(Person person) {
        return person.getAge() >= 15;
    }
});
代码语言:txt
复制
/**
 * 可分割迭代器,是Java为了并行遍历数据源中的元素而设计的迭代器,这个可以类比最早Java提供的顺序遍历迭代器  
 *Iterator,但一个是顺序遍历,一个是并行遍历。 
 * jdk 1.8
 */ 
@Override
default Spliterator<E> spliterator() {
    return Spliterators.spliterator(this, 0);
}
代码语言:txt
复制
/**
 * 返回一个System流
 * jdk 1.8
 */
default Stream<E> stream() {
    return StreamSupport.stream(spliterator(), false);
}
代码语言:txt
复制
/**
 * 返回一个并发System流
 * jdk 1.8
 */
default Stream<E> parallelStream() {
    return StreamSupport.stream(spliterator(), true);
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、基本操作
  • 2、集合转化为数组
  • 3、对集合进行操作
  • 4、新增
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档