1、4种集合类型

List:有序可重复集合。

Queue:队列集合。

Set:无序不可重复集合。

-------------------------------

Map:关系映射集合。

2、所有的集合类都位于java.util包下。java.util.concurrent下在java5后增加了多线程支持的集合类。

3、数组中的元素可以是基本数据类型的值,也可以是对象。而集合中只能保存对象。

4、集合的派生关系

Collection体系:LinkedList最特殊,有两个父接口。queue与List类似。

Map体系:

Map保存的每项数据都是key-value对。

总结:由于queue类似于List,所以集合大体可以分为3类,即List、Map、Set。访问List集合中的元素,可以通过元素的索引来访问;如果访问Map中的元素,可以根据每项元素的key来访问其value;如果访问Set中的元素,只能通过元素本身(这也是Set不允许元素重复的原因)。

5、Collection接口,是Set、Queue、List接口的父接口。

其定义的方法有:

1》boolean add(Object o):向集合中添加一个元素。集合对象被添加操作改变了,则返回true。

2》boolean addAll(Collection c):将集合c中的所有元素添加到指定的集合中。集合对象被添加操作改变了,则返回true。

3》void clear():清除集合里的所有元素,将集合长度变为0。

4》void contains(Object o):返回集合中是否包含指定元素。

5》boolean containsAll(Collection c):返回集合里是否包含集合c里的所有元素。

6》boolean isEmpty():返回集合是否为空。当集合长度为0时返回true,否则返回false。

7》Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素。

8》boolean remove(Objeact o):删除集合中的指定元素o,当集合中包含了一个或者多个元素o时,该方法只删除第一个符合条件的元素,该方法将返回true。

9》boolean removeAll(Collection c):从集合中删除集合c里包含的所有元素(相当于调用该方法的集合减集合c),如果删除了一个或者一个以上的元素,则该方法返回true。

10》boolean retainAll(Collection c):从集合中删除集合c里不包含的元素(相当于把调用该方法的集合变成该集合和集合c的交集),如果该操作改变了调用该方法的集合,则该方法返回true。

11》int size():该方法返回集合里元素的个数。

12》Object[] toArray():该方法把集合转换成数据,所有的集合元素变成对应的数据元素。

6、Iterator接口也是Java集合框架的成员,Iterator主要用于遍历(迭代)Collection集合中的元素,Iterator对象也被称为迭代器。其定义了如下4个方法:

1》bolean hasNext():如果被迭代的集合还有元素没有被迭代完,则返回true。

2》Object next():返回集合里的下一个元素。

3》void remove():删除集合里上一次next方法返回的元素。

4》void forEachRemaining(Consumer action):Java 8为Iterator新增的默认方法,该方法可以使用Lambda表达式遍历集合。

使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传递给了迭代变量,即修改迭代变量的值对集合元素本身没有任何影响。通过Iterator的remove()方法删除上一次next()方法返回的集合元素。

7、使用foreach循环遍历集合元素

for(String book:books){
System.out.println(book);
}

使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传递给了迭代变量,修改迭代变量值是无意义的。迭代过程当中不能修改集合中的元素,比如调用集合的remove()方法。

8、Java 8新增的Predicate操作集合

Java 8为Collection集合新增一个removeIf(Predicate filter)方法,该方法将会批量删除符合filter条件的所有元素。Predicate也是函数式接口。

Collection books=new HashSet();
...
books.removeIf(ele->((String)ele).length()<10);

9、Java 8新增的Stream操作集合

Java 8还新增了Stream、IntStream、LongStream、DoubleStream等流式API。

Java-集合第一篇认识Java集合的更多相关文章

  1. 【JAVA并发第一篇】Java的进程与线程

    1.进程与线程 1.1.进程 进程可以看作是程序的执行过程.一个程序的运行需要CPU时间.内存空间.文件以及I/O等资源.操作系统就是以进程为单位来分配这些资源的,所以说进程是分配资源的基本单位. ( ...

  2. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  3. 学习java随笔第一篇:搭建java平台(java se)

    电脑系统:windows8 在这里介绍一下java平台的3个版本: Java SE--Java Standard Edition,Java的标准版,主要用于桌面级的应用和数据库开发. Java EE- ...

  4. Java【第一篇】基本语法之--关键字、标识符、变量

    关键字 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写 标识符 Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符凡是自己可以起名字的地 ...

  5. java基础第一篇

    1.JDK:Java Development kit 能对Java程序编译,运行 包含JRE JRE:Java Runtime Environment 能对Java程序运行 包含JVM和一些核心类库 ...

  6. java分享第一天(java环境及原理)

    1 JDK的安装目录中:环境变量中增加JAVA_HOME变量:JDK安装目录:在path中添加JDK的bin目录 2 java执行的顺序是: 1 用java编译器javac   XXX.java   ...

  7. JAVA基础第一章-初识java

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 ...

  8. 《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解

    这一篇对TreeSet做介绍,先看一个简单的例子: * TreeSet:能够对元素按照某种规则进行排序.  * 排序有两种方式  * A:自然排序: 从小到大排序  * B:比较器排序    Comp ...

  9. 《java入门第一季》之集合框架(Collection小儿子Set集合)

    /*  * Collection主要的连个儿子:  * |--List  * 有序(存储顺序和取出顺序一致),可重复  * |--Set  * 无序(存储顺序和取出顺序不一致),唯一  *   * H ...

随机推荐

  1. Azure Messaging

    上篇博文中我们介绍了Azure ServiceBus Messaging的消息事务机制: Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务(2017 ...

  2. java定义时间

    import java.text.SimpleDateFormat; import java.util.Date; SimpleDateFormat format=new SimpleDateForm ...

  3. hadoop中yarn

    一.yarn的概述 Apache Yarn(Yet Another Resource Negotiator的缩写)是hadoop集群资源管理器系统,Yarn从hadoop 2引入,最初是为了改善Map ...

  4. Delphi--长线程

    { 长线程, 开启:随应用程序启用而启动 关闭:岁应用程序关闭而结束 } unit uLongThread; interface uses Classes, ADODB, DB, ActiveX, S ...

  5. Spring Cloud(2)主要组件应用实例

    SpringCloud SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.负载均衡.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行 ...

  6. 决策树剪枝算法-悲观剪枝算法(PEP)

    前言 在机器学习经典算法中,决策树算法的重要性想必大家都是知道的.不管是ID3算法还是比如C4.5算法等等,都面临一个问题,就是通过直接生成的完全决策树对于训练样本来说是“过度拟合”的,说白了是太精确 ...

  7. div 垂直居中的方法

    方法一 .table-body>ul>li{ font-size: 0 } .table-body>ul>li:after { content: ''; width: 0; h ...

  8. sigmoid和softmax的应用意义区别

    转载自:https://baijiahao.baidu.com/s?id=1636737136973859154&wfr=spider&for=pc写的很清楚,并举例佐证,容易理解,推 ...

  9. CSS伪元素选择器和属性选择器

    伪元素 能使用伪元素来选择元素中的一些特殊位置 一.给段落定义样式 :first-letter  首字母(只能用于块元素) :first-line  第一行 1.为p元素中的第一个字符设置颜色为黄色, ...

  10. JSP上传一个文件夹

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...