当前位置: 首页 > news >正文

双流建设局网站南京专业做网站的公司

双流建设局网站,南京专业做网站的公司,大连工业大学研究生院官网,国家企业信用信息公示网官方目录 1.0 Collection 类的说明 1.1 Collection 类中的实例方法 2.0 Collection 集合的遍历方式(重点) 2.1 使用迭代器( Iterator )进行遍历 2.2 使用增强型 for 循环进行遍历 2.3 使用 Java 8的 Stream API 进行遍历(使…

目录

        1.0 Collection 类的说明

        1.1 Collection 类中的实例方法

        2.0 Collection 集合的遍历方式(重点)

        2.1 使用迭代器( Iterator )进行遍历

        2.2 使用增强型 for 循环进行遍历

        2.3 使用 Java 8的 Stream API 进行遍历(使用 Lambda 表达式进行遍历)


        1.0 Collection 类的说明

        Collection 类是 Java 单列集合框架中的根接口,它是所有单列集合类的父接口。Collection接口有多个实现类,常用有 ArrayList:基于数组实现的动态数组,支持随机访问和快速插入、删除元素。

        1.1 Collection 类中的实例方法

代码如下(以举例子的形式来介绍):

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;public class CollectionAPI {public static void main(String[] args) {//因为 Collection 是接口,故不能直接创建对象,// 那么需要利用它实现类 ArrayList 类,且支持泛型类Collection<String> collection = new ArrayList<>();// 1. Collection 中 add() 的实例方法,添加元素collection.add("二哈");collection.add("金毛");collection.add("拉布拉多");collection.add("中华田园犬");collection.add("二哈");System.out.println(collection);//输出结果为:[二哈, 金毛, 拉布拉多, 中华田园犬, 二哈]// 2. Collection 中 size() 的实例方法,获取集合的大小System.out.println(collection.size());//输出结果为:5// 3. Collection 中 contains() 的实例方法,// 判断是否包含某个元素,是则返回true ,不是则返回falseSystem.out.println(collection.contains("二哈"));//输出结果为:true// 4. Collection 中 remove() 的实例方法// 删除某个元素,如果是该元素是重复的时候,删除的是第一个该元素collection.remove("二哈");System.out.println(collection);//输出的结果为:[金毛, 拉布拉多, 中华田园犬, 二哈]// 5. Collection 中 clear() 的实例方法,清空集合中的元素collection.clear();System.out.println(collection);//查看集合中的元素,输出结果为: []// 6. Collection 中 isEmpty() 的实例方法,// 判断集合元素是否为空,是空则放回true,不是空则返回falseSystem.out.println(collection.isEmpty());//输出结果为:true// 7. Collection 中 toArray() 的实例方法,把集合转化为数组//先添加一些元素collection.add("二哈");collection.add("二哈");//调用 toArray() 的实例方式,类型是 String 类型,//虽然集合支持泛型,但是在运行的时候会被擦除,所以为了兼容,//建议用所以用 Object[] 类型的数组来接收Object[] str = collection.toArray();System.out.println(Arrays.toString(str));//输出的结果为:[二哈, 二哈]}
}

运行结果如下:

        2.0 Collection 集合的遍历方式(重点)

        先来提出两个疑问,为什么集合遍历不可以用普通的 for 循环?有什么方法可以对集合进行遍历呢?

        回答第一个问题:集合遍历不可以用普通的 for 循环,是因为集合类的元素个数是动态变化的,而普通的 for 循环是基于固定的元素个数进行遍历的。当集合类的元素个数发生变化时,普通的 for 循环无法正确遍历所有元素,可能会出现越界等错误。

        回答第二个问题:Collection 集合的遍历方式主要有三种:使用迭代器( Iterator )进行遍历、使用增强型 for 循环进行遍历、使用 Lambda 表达式进行遍历(可以使用 Stream forEach() 方法遍历)

        2.1 使用迭代器( Iterator )进行遍历

        首先通过调用集合的 iterator() 方法获取一个迭代器对象,然后使用 while 循环和迭代器的 hasNext() next() 方法进行遍历。

代码如下:

  

import java.util.*;
public class CollectionAPI {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("二哈");c.add("金毛");c.add("拉布拉多");c.add("中华田园犬");//使用迭代器( Iterator )进行遍历://首先需要通过 iterator() 方法获取一个迭代器对象,Iterator iterator = c.iterator();//然后使用 while 循环和迭代器的 hasNext() 和 next() 方法进行遍历.while (iterator.hasNext()){System.out.println(iterator.next());}}
}

运行结果如下:

        详解 hasNext()next() 方法,hasNext() 判断当前指向的集合中的元素是否为空,空则返回 false ,反则返回 true next() 做了两个动作,第一个动作就是获得了当前的集合元素,第二个动作就是指向下一个集合中的元素。连贯起来就是先得到当前所指向的元素,再指向下一个集合中的元素。

        补充: 数组不可以用迭代器,是因为迭代器是集合框架中的一种数据访问方式,而数组不属于集合框架,它是 Java 语言中的一种基本数据结构,所以无法使用迭代器。

        2.2 使用增强型 for 循环进行遍历

         增强型 for 循环可以直接遍历集合中的元素,无需使用迭代器。但是其中的本质还是使用了迭代器,增强 for 循环就是对迭代器的一种简化写法。

        作为常识了解一下:当使用增强型 for 循环遍历一个集合时,编译器会自动为我们生成一个迭代器,并使用迭代器的 hasNext() next() 方法来遍历集合中的元素。所以,虽然我们在使用增强型 for 循环时不需要显式地调用迭代器的方法,但实际上是在间接地使用了迭代器。(增强 for 循环出现的目的就是简化代码)

        还有需要注意的是:对于数组,我们不能直接使用迭代器进行遍历。迭代器是用于遍历集合类(如 ListSet 等)的数据结构的工具,而数组不是集合类,它是一种基本的数据结构。然而对于数组,我们可以直接使用增强 for 循环

代码如下:

import java.util.*;
public class CollectionAPI {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("二哈");c.add("金毛");c.add("拉布拉多");c.add("中华田园犬");for (String s : c) {System.out.println(s);}}
}

运行结果如下:

        2.3 使用 Java 8的 Stream API 进行遍历(使用 Lambda 表达式进行遍历)

        Java 8 引入了 Stream API,可以使用 Stream 的 forEach() 方法遍历集合中的元素。

       集合中提供的 forEach() 实例方法中的参数为匿名内部类 Consumer<>  是函数式接口,需要重写接口内部的 accept() 方法。

        本质 forEach() 方法是增强 for 循环,可以看看原代码:

代码如下:

public class CollectionAPI {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("二哈");c.add("金毛");c.add("拉布拉多");c.add("中华田园犬");/*        c.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});*///之所以可以称为 Lambda 表达式遍历,// 是因为可以用 Lambda 表达式来遍历c.forEach( s -> System.out.println(s) );System.out.println("----------------------");//还可以继续简化c.forEach( System.out::println);}
}

运行结果如下:

  

 如果对匿名内部类或者是 Lambda 表达式运用还不是很熟悉的话,可以点击以下的链接去了解一下:

进阶JAVA篇- Lambda 表达式与 Lambda 表达式的省略规则-CSDN博客



http://www.yayakq.cn/news/348077/

相关文章:

  • 网站主关键词如何优化成都装修网站制作
  • 网站常见问题是什么广州市几个区
  • 做网站的荣誉证书天猫商城官方网站
  • 长春哪有做网站公司如何做双版网站
  • 免费cms建站系统有哪些山东省优质校建设网站
  • 初期做网站怎么自己编程做网站
  • 网页设计师职位要求萌新seo
  • 没有网站可以做seo排名吗做微商能利用的网站有哪些问题
  • 做资金盘网站违法吗中国500强企业排名
  • 用户研究网站兰州网站搜索引擎优化
  • 简洁大气的网站设计dw网站开发环境
  • 网站建站时间包头市做网站公司
  • 如何开办网站商标注册号
  • 辽宁省交通投资建设集团网站怎么做表格
  • 株洲电商网站建设上海国际人力资源开发公司
  • 展览中心网站建设课桌公司网站建设
  • 邢台天九建设有限公司网站云南昆明百度推广公司
  • 企业网站html模板优秀网站建设公司
  • 沈阳网站建设定制WordPress文章可视化php代码
  • h5做的网站国外vps
  • 深圳网站建设行吗字体设计网
  • 北京网站建设公司收购百度查看订单
  • 兴国电商网站建设湖南智能网站建设哪里好
  • 泉州网站建设企业上海网站建设目的
  • 网站产品优化威海做企业网站
  • 网站栏目标签如何调用中国深圳航空公司官网
  • 专业外贸网站制作权威网站排名
  • 太原市建设路小学网站白嫖云服务器
  • 390元做微信小程序 公众号 网站wordpress图片推荐插件
  • 简历模板网站有哪些蒙古文网站建设