博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
来了解下java的Collection
阅读量:6324 次
发布时间:2019-06-22

本文共 1442 字,大约阅读时间需要 4 分钟。

什么是集合呢? 集合描述的是一组对象,在集合里面的对象也被叫做element。它允许有重复的元素存在。

它在集合的等级机构中处于最顶层 位置。它是一个接口,它的具体的实现类必须实现2个标准的构造方法。

  1. 无参构造方法:用于创建一个空的集合
  2. 具有一个参数,这个参数的类型是Collection: 它的作用是可以创建一个具有和这个参数一样的元素的集合。它可以复制一个集合。

但是,要注意的是它不是一个必须遵守的规定,正如接口不能具有构造方法一样。但是Java平台的类库都是遵守了这条规定的。

当我们用迭代器来操作集合的时候或者当一个集合作为一个方法的参数的时候,需要考虑到这个集合的同步策略。

Collection继承了Iterable接口。在Collection接口里面有下面几类操作

  1. 访问的操作:如size(),isEmpty(),contains(Object o),iterator(),toArray()等
  2. 修改的操作:如add(E e),remove(Object o)
  3. 批量的操作:如containsAll(Collection<?> c),addAll(Collection<? extends E> c),removeAll(Collection<?> c),default boolean removeIf(Predicate<? super E> filter),retainAll(Collection<?> c)
  4. 比较的操作:equals(Object o),stream()

其中retailAll方法的作用是在一个集合在和指定的集合做元素上的差异的时候,删除与指定的集合中不包含的元素。

ArrayList
a = new ArrayList<>();a.add(1);a.add(2);a.add(3);ArrayList
b = new ArrayList<>();b.add(1);b.add(2);b.add(5);boolean res = a.retainAll(b);a.forEach(System.out::println);//return 1 2复制代码

removeIf是根据传入的条件来删除集合中满足这个条件的所有元素。

ArrayList
names = new ArrayList<>();names.add("xiaoa");names.add("hehe");names.add("kaxi");names.add("xikaxi");names.removeIf(name -> name.startsWith("xi"));names.forEach(System.out::println);//return hehe kaxi复制代码

这个方法是利用集合的迭代器来进行删除的,所以如果你操作的集合的迭代器不支持删除的操作,就会出现UnsupportedOperationException。

集合是一种使用比较多的数据结构,比如Spring框架的许多地方都在大量使用集合。可以说集合是构建复杂程序的基础材料。要理解这类框架就需要对集合这个家族的成员有着更加深入的认知。这是学习集合的第一篇。后面会持续跟大家分享这一块的内容。

转载于:https://juejin.im/post/5ca03636f265da30b3408d22

你可能感兴趣的文章
Axure RP介绍
查看>>
ini_set()函数的使用 以及 post_max_size,upload_max_filesize的修改方法
查看>>
联想S720/S720i通刷刷机包 Vibe V1.0
查看>>
java异常 之 异常的层次结构
查看>>
数据库设计原则
查看>>
T - stl 的mapⅡ
查看>>
Matlab中的取整-floor,ceil,fix,round
查看>>
Atitit .c#的未来新特性计划草案
查看>>
经验总结17--submitbutton,ajax提交
查看>>
mysql分表技术
查看>>
.Net 垃圾回收和大对象处理 内存碎片整理
查看>>
Linux是如何启动的
查看>>
HiKey连接
查看>>
wget 参数大全
查看>>
使用Loadrunner进行文件的上传和下载
查看>>
Linux C 静态库(.a) 与 动态库(.so) 的详解
查看>>
JS函数
查看>>
sql语句分组/排序/计算总数/连接等sql语句书写
查看>>
【.net 深呼吸】启动一个进程并实时获取状态信息
查看>>
MVC5 的MicrosoftOwinSecurity扩展插件——微信,QQ登录第三方源码
查看>>