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.pswp.cn/news/379883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379883.shtml
英文地址,請注明出處:http://en.pswp.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…