Java——集合的遍历之迭代遍历

这些是下面的代码中所涉及到的所有方法:* 迭代概述:*      集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历)*      也就是说,迭代就是遍历* * public interface Iterator<E> 对 collection 进行迭代的迭代器* Iterator<E> iterator()返回在此 collection 的元素上进行迭代的迭代器* java.util 接口 Iterator<E>* * boolean hasNext()如果仍有元素可以迭代,则返回 true* * E next()返回迭代的下一个元素* * void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)   
package com.wsq.bean;
//创建一个自定义Student类
public class Student {private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setNaem(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {      //这里得重写toString方法return "Student [naem=" + name + ", age=" + age + "]";}}
package com.wsq.collection;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import com.wsq.bean.Student;
public class Demo5_Iterator {public static void main(String[] args) {demo1();                                //迭代已经提供好的String类对象demo2();                                //迭代一个自定义对象,自己创建类,然后创建对象存储集合里,然后迭代 }private static void demo2() {Collection c = new ArrayList();            //创建集合cc.add(new Student("张三",23));               //向集合c里面添加Student类对象即new Student("张三",23)c.add(new Student("李四",24));               //object obj = new Student("李四",24);  父类引用指向子类对象c.add(new Student("王五",25));               //由于多态的弊端导致obj不能调用子类特有的属性和行为c.add(new Student("赵六",26));Iterator it = c.iterator();                //获取迭代器,迭代的时候,获取到的都是Object类型while(it.hasNext()){                       //boolean hasNext()如果仍有元素可以迭代,则返回 true,进行循环判断集合是否还含有元素//System.out.println(it.hasNext());     //调用它的toString方法Student s = (Student)it.next();         //向下转型,由Object类向下转型成为Student类//当把Student对象给添加进来的时候,会进行一个类型的提升Student对象变成了Object类System.out.println(s.getName() + "..." + s.getAge()); //通过s就可以调用它的getName和getAge方法}
}public static void demo1(){               //迭代已经提供好的String类对象Collection c = new ArrayList();       //创建集合cc.add("a");                           //向集合c添加元素c.add("b");c.add("c");c.add("d");//对集合中的元素迭代(遍历)Iterator it = c.iterator();            //获取迭代器;获取迭代器之后,就可以使用迭代器里面的方法/*boolean b1 = it.hasNext();            //判断集合中是否有元素,有就返回trueObject obj1 = it.next();               //E next()返回迭代的下一个元素,通过next方法将那个元素给获取出来System.out.println(b1);                //很显然,集合c中有4个元素,a,b,c,d,所以输出结果为trueSystem.out.println(obj1);              //返回下一个元素,就是第一个元素,所以输出结果为 aboolean b2 = it.hasNext();            //判断集合中是否有元素,有就返回trueObject obj2 = it.next();               //E next()返回迭代的下一个元素,通过next方法将那个元素给获取出来System.out.println(b2);                //很显然,集合c中有4个元素,a,b,c,d,所以输出结果为trueSystem.out.println(obj2);              //返回下一个元素,这里就成为了第二个元素,所以输出结果为 b//通过这两次的输出,可以得出next方法可以将指针向后移动一位,第一次获取的是a,然后,又调用了一次next,第二次获取了b...//这样写太磨叽了,这里有4个元素,代码得重复4次,如果100个元素,那么这样写,代码会特别的磨叽*/while(it.hasNext()){                    //boolean hasNext()如果仍有元素可以迭代,则返回 true,进行循环判断集合是否还含有元素//通过while循环,利用hasNext这个方法来判断是否有元素System.out.println(it.next());      //有元素的话,调用next方法,调用一次,指针就会向后移动一次,然后输出该元素即可//E next()返回迭代的下一个元素,通过next方法将那个元素给获取出来}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数组排序最小复杂度_进行排序的最小缺失数

数组排序最小复杂度Problem statement: 问题陈述&#xff1a; Given an array of n integers. Find the minimum number of elements from the array to remove or delete so that when the remaining elements are placed in the same sequence order form a sorted sequence…

轻松掌握Windows窗体间的数据交互(转载)

轻松掌握Windows窗体间的数据交互作者&#xff1a;郑佐日期&#xff1a;2004-04-05Windows 窗体是用于 Microsoft Windows 应用程序开发的、基于 .NET Framework 的新平台。此框架提供一个有条理的、面向对象的、可扩展的类集&#xff0c;它使您得以开发丰富的 Windows 应用程序…

MATLAB安装问题解决方案大集锦

我的安装后的两个问题 第一个&#xff1a;“Microsoft Visual C Runtime LibraryRuntime Error!Program:C:\Matlab7\Rin\Win32\Matlab.exeThis application has requested the runtime to terminate it in an unusual way.Please contact the applications support team for mo…

python免杀技术---shellcode的加载与执行

0x01 生成shellcode 首先通过下列命令生成一个shellcode&#xff0c;使用msfvenom -p选项来指定paylaod&#xff0c;这里选用windows/x64、exec模块接收的参数。使用calc.exe执行弹出计算器的操作。-f选项用来执行生成的shellcdoe的编译语言。 msfvenom -p windows/x64/exec …

成对的歌曲,其总持续时间可被60整除

Problem statement: 问题陈述&#xff1a; In a list of songs, the i-th song has duration of time[i] seconds. Return the number of pairs of songs for which their total duration in seconds is divisible by 60. Formally, we want the number of indices i < j w…

Qt中QTableWidget用法总结

QTableWidget是QT程序中常用的显示数据表格的空间&#xff0c;很类似于VC、C#中的DataGrid。说到QTableWidget&#xff0c;就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类&#xff0c;主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先…

[转]软件架构师书单

"其实中国程序员&#xff0c;现在最需要的是一张安静的书桌。"&#xff0c;的确&#xff0c;中国架构师大多缺乏系统的基础知识&#xff0c;与其自欺欺人的宣扬"读书无用&#xff0c;重在实践变通&#xff0c;修身立命哲学书更重要"&#xff0c;把大好时间…

Java——List集合特有的功能

* List也是一个接口&#xff0c;这说明List不能new&#xff0c;其中它有一个子类ArrayList&#xff0c;所以&#xff0c;就可以父类引用指向子类对象调用* List里面特有的方法&#xff1a;* * void add(int index,E element)在列表的指定位置插入指定元素&#xff08;可选操作&…

python免杀技术---复现+改进----1

0x01 复现 复现文章&#xff1a;https://mp.weixin.qq.com/s?__bizMzI3MzUwMTQwNg&mid2247484733&idx2&sn5b8f439c2998ce089eb44541d2da7a15&chksmeb231%E2%80%A6 首先用cobaltstruke生成一个python的payload脚本 然后复制里面的payload进行Base64编码&…

python掷骰子_用于掷骰子的Python程序(2人骰子游戏)

python掷骰子Here, we will be going to design a very simple and easy game and implement it using abstract data class. The code consists of two different classes (The base of the whole program). The one will be the class for the player and others will be for…

ForeignKey和ManyToManyField的限制关系

authorsmodels.ManyToManyField(Author,limit_choice_to{name__endswith:Smith}这样可以更方便的查询。转载于:https://www.cnblogs.com/chenjianhong/archive/2012/03/22/4145158.html

linux 目录命令_Linux目录命令能力问题和解答

linux 目录命令This section contains Aptitude Questions and Answers on Linux Directory Commands. 本节包含有关Linux目录命令的 Aptitude问答。 1) There are the following statements that are given which of them are correct about Linux commands? In the Linux o…

终于在HP2133上成功安装xp

今天拿到一台HP2133迷你笔记本&#xff0c;原装vista home basic&#xff0c;由于本人是在不喜欢vista&#xff0c;于是决定将使用xp换之。 很久没有研究装系统了&#xff0c;HP2133没有光驱&#xff0c;以前也没啥这方面经验&#xff0c;搞这个玩意安装完软件折腾了大半天&…

Java——GUI(图形用户界面设计)

事件处理&#xff1a;事件&#xff1a;用户的一个操作(例如&#xff1a;点击一下鼠标&#xff0c;或者敲击一下键盘)事件源&#xff1a;被操作的组件(例如&#xff1a;在一个窗体中的一个按钮&#xff0c;那个按钮就属于被操作的组件&#xff0c;按钮就是事件源)监听器&#xf…

python安全攻防---信息收集---IP查询

IP查询是通过当前所获得的URL去查询对应IP地址的过程&#xff0c;可应用Socket库函数中的gethostbyname()获取域名所对用的IP值 程序如下&#xff1a; # -*- coding:utf-8 -*- IP查询import socket ip socket.gethostbyname(www.baidu.com) print(ip)运行结果&#xff1a; …

智能课程表Android版-学年学期星期的实现

上次我们实现了日期和时间的动态显示&#xff0c;这次我们来实现学年&#xff0c;学期&#xff0c;周次的显示&#xff0c;如图: 首先是学年学期的显示&#xff1a; Calendar cCalendar.getInstance(); int yearc.get(Calendar.YEAR); int monthc.get(Calendar.MONTH)1;//Calen…

感染linux脚本程序技术

前言 ---- 本文来源于29A病毒杂志,其上对linux shell病毒技术有了一个综合的阐述,我不想翻译它,我以它的那篇为模板 写了这篇中文的文章,里面的代码我都做了调试. 对于shell编程的程序员来说所谓的shell病毒技术其实根本就是小牛一毛,这点在大家看完本文后就会有所体会 但,简单…

Java——设计模式(简单工厂模式)

* A:简单工厂模式概述* 简单工厂模式又叫静态工厂方法模式&#xff0c;它定义了一个具体的工厂类负责创建一些类的实例* B&#xff1a;优点* 客户端不需要再负责对象的创建&#xff0c;从而明确了各个类的职责* 简单来说&#xff0c;客户端你只需要用就可以了&#xff0c;就…

Java ObjectOutputStream writeFloat()方法与示例

ObjectOutputStream类writeFloat()方法 (ObjectOutputStream Class writeFloat() method) writeFloat() method is available in java.io package. 在java.io包中提供了writeFloat()方法 。 writeFloat() method is used to write the given 4 bytes of a float value. writeFl…

python安全攻防---信息收集---whois查询

whois是用来查询域名的IP以及所有者信息的传输协议。简单地说&#xff0c;whois就是一个数据库&#xff0c;用来查询域名是否以及被注册&#xff0c;以及注册域名的详细信息&#xff08;如域名所有人、域名注册商等&#xff09;。 使用whois查询&#xff0c;首先通过pip安装py…