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

合肥企业网站推广甘肃省建设工程安全质量监督局网站

合肥企业网站推广,甘肃省建设工程安全质量监督局网站,wordpress小标签,台州模板网建站目录 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/359001/

相关文章:

  • 网站首页模块建设阳江网站seo服务
  • 网站后台不显示企业搜索平台
  • 网站为什么百度搜不到江阴外贸网站建设
  • 做网站 怎么提升浏览量网站开发报价表模板
  • 如何制作手机免费网站模板下载恩施做网站多少钱
  • 网站布局软件seo网站程序
  • 广西网站建设哪家有温州网站建设及推广
  • 阿里云 备案 网站服务内容中徽园林建设有限公司网站
  • 网站备案后可以更换域名吗青州哪里做网站做得好
  • 做可视化的网站专业做图片制作网站有哪些
  • 单品网站怎么建设高端品牌网站建设有哪些注意事项
  • 什么是网站?杭州seo按天计费
  • 帮做动态头像的网站想从网上卖东西怎么卖
  • 网站运营刚做时的工作内容wordpress编辑器没了
  • 中国海洋大学做英语作业的网站wordpress 添加分享
  • 乡村门户网站建设做网站运营需要培训吗
  • 网站首页置顶是怎么做我要免费开网店
  • 雪狼网站系统网站顺序
  • 网站建设典型发言哪个购物软件最便宜
  • 做ppt好的网站有哪些绍兴建设开发有限公司网站首页
  • 中国建材工程建设协会网站个人网页设计图片素材
  • 保险做的好的网站手机网站制作 尺寸
  • 一起做网店网站官方wap浏览器下载
  • 怎样做一个网站河北做网站电话
  • 2014苏州建设银行招聘网站怎样上传网站到百度
  • 临沂做wish网站好口碑关键词优化地址
  • 做套现网站新媒体营销策略分析
  • 个人或主题网站建设实验报告各类网站排名
  • 绿色食品网站建设可行性外贸网站 有哪些
  • 网站收录和反链都正常关键词却没有排名的原因网站个人备案类型