《Java程序設(shè)計(jì)》課件-項(xiàng)目六 Java數(shù)據(jù)庫與集合類_第1頁
《Java程序設(shè)計(jì)》課件-項(xiàng)目六 Java數(shù)據(jù)庫與集合類_第2頁
《Java程序設(shè)計(jì)》課件-項(xiàng)目六 Java數(shù)據(jù)庫與集合類_第3頁
《Java程序設(shè)計(jì)》課件-項(xiàng)目六 Java數(shù)據(jù)庫與集合類_第4頁
《Java程序設(shè)計(jì)》課件-項(xiàng)目六 Java數(shù)據(jù)庫與集合類_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目六Java數(shù)據(jù)庫與集合類Java程序設(shè)計(jì)6.1Java數(shù)據(jù)庫連接Java程序設(shè)計(jì)2.JDBC(JavaDataBaseConnectivity)即JAVA數(shù)據(jù)庫連接技術(shù)1.ODBC(OpenDataBaseConnectivity)即開放數(shù)據(jù)庫互連,是微軟公司數(shù)據(jù)庫系統(tǒng)應(yīng)用程序接口規(guī)范,支持應(yīng)用程序以標(biāo)準(zhǔn)的ODBC函數(shù)和SQL語言訪問不同數(shù)據(jù)庫。注意:JDBC是一種可用于執(zhí)行SQL語句的JAVAAPI(應(yīng)用程序設(shè)計(jì)接口),是連接數(shù)據(jù)庫和Java應(yīng)用程序的紐帶。java數(shù)據(jù)庫連接Java程序設(shè)計(jì)ODBC體系結(jié)構(gòu):應(yīng)用程序(Application):執(zhí)行ODBC函數(shù)的調(diào)用和處理,提交SQL語句并檢索結(jié)果。驅(qū)動程序管理器(DriverManager):為應(yīng)用程序裝載驅(qū)動程序提供支持。驅(qū)動程序(Driver):建立與數(shù)據(jù)源的連接,實(shí)現(xiàn)和執(zhí)行ODBC函數(shù)調(diào)用,向連接數(shù)據(jù)源提交SQL請求,并把結(jié)果返回給應(yīng)用程序。數(shù)據(jù)源(DataSource):由存取的數(shù)據(jù)和與之相連的操作系統(tǒng)、DBMS及網(wǎng)絡(luò)平臺組成。6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)基本部分組成:JDBCAPI、JDBC驅(qū)動管理器、JDBC驅(qū)動程序JDBCAPI繼承關(guān)系6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)DriverManager

(java.sql.DriverManager)

裝載驅(qū)動管理器,創(chuàng)建和管理應(yīng)用程序與驅(qū)動程序之間的接口Driver(由驅(qū)動程序開發(fā)商提供,嵌入java2JDK

將應(yīng)用程序的API請求轉(zhuǎn)換為特定數(shù)據(jù)庫的執(zhí)行請求Connection(java.sql.Connection)

實(shí)現(xiàn)Java應(yīng)用程序與特定的數(shù)據(jù)庫的連接注意:默認(rèn)情況下,Connection對象處于自動提交模式下,這意味著它在執(zhí)行每個(gè)語句后都會自動提交更改。如果禁用了自動提交模式,那么要提交更改就必須顯式調(diào)用commit方法;否則無法保存數(shù)據(jù)庫更改。

Statement

(java.sql.Statement)

用于執(zhí)行一個(gè)靜態(tài)的數(shù)據(jù)庫SQL語句(靜態(tài)賦于參數(shù))PreparedStatement(java.sql.Statement)用于執(zhí)行一個(gè)動態(tài)的數(shù)據(jù)庫SQL語句(動態(tài)賦于參數(shù))注意:PreparedStatement接口表示預(yù)編譯的SQL語句的對象。SQL語句被預(yù)編譯并存儲在PreparedStatement對象中。然后可以使用此對象多次高效地執(zhí)行該語句。

ResultSet

(java.sql.ResultSet)

select語句執(zhí)行完后返回的數(shù)據(jù)結(jié)果集(包括行、列)6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)JDBC的三項(xiàng)基本任務(wù)1.加載驅(qū)動程序,建立與數(shù)據(jù)庫連接2.向數(shù)據(jù)庫發(fā)送和執(zhí)行SQL命令3.處理數(shù)據(jù)庫返回的數(shù)據(jù)集合JDBC主要工作流程6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)加載驅(qū)動程序

為應(yīng)用程序與數(shù)據(jù)庫的連接提供必要的支持,實(shí)現(xiàn)將JAVA對象中所封裝的行為與屬性轉(zhuǎn)換成特定數(shù)據(jù)庫的執(zhí)行指令格式:Class.forName(“driver_type”);驅(qū)動程序(driver_type)由驅(qū)動程序開發(fā)商提供。各類數(shù)據(jù)庫系統(tǒng)的驅(qū)動程序亦不同,需要根據(jù)數(shù)據(jù)庫產(chǎn)品進(jìn)行設(shè)定.不同數(shù)據(jù)庫的不同加載程序:JDBC-ODBC橋驅(qū)動:Class.forName(“sun.jdba.odbc.JdbcOdbcDriver”);

MysqlJDBC驅(qū)動:Class.forName(“com.mysql.jdbc.Driver”);

OracleJDBC驅(qū)動:Class.forName(“oracle.jdbc.driver.OracleDriver”);

SQLServer

JDBC驅(qū)動:Class.forName(“com.microsoft.sqlserver.SQLServerDriver”);

DB2JDBC驅(qū)動:Class.forName(“.DB2Driver”);6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)2.注冊JDBC驅(qū)動程序

在成功加載驅(qū)動程序后,需要向DriverManager對加載的JDBC驅(qū)動程序進(jìn)行系統(tǒng)注冊,為連接數(shù)據(jù)庫提供充分條件--建立邏輯連接。利用驅(qū)動管理器DriverManager類的getConnection()方法,為特定的數(shù)據(jù)庫系統(tǒng)注冊JDBC驅(qū)動程序,注冊JDBC驅(qū)動程序需要提供三個(gè)參數(shù):URL、login、passwd格式:DriverManager.getConnection(URL,“l(fā)ogin”,“passwd”);

比如mysql的注冊命令為:DriverManager.getConnection("jdbc:mysql://localhost[:port]/datasoure","login","passwd");注意:DriverManager類是JDBC的管理層,作用于用戶和驅(qū)動程序之間。它跟蹤可用的驅(qū)動程序,并在數(shù)據(jù)庫和相應(yīng)驅(qū)動程序之間建立連接。6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)JDBC-ODBCBridge驅(qū)動:Class.forName(“sun.jdba.odbc.JdbcOdbcDriver”);DriverManager.getConnection("jdbc:odbc:datasoure","login","passwd");MysqlJDBC驅(qū)動:

Class.forName(“org.git.mm.mysql.Driver”);DriverManager.getConnection("jdbc:mysql://localhost[:port]/datasoure","login","passwd");OracleJDBC驅(qū)動:Class.forName(“oracle.jdbc.driver.OracleDriver”);DriverManager.getConnection("jdbc:oracle:thin:@localhost:port:datasoure","login","passwd");SQLServerJDBC驅(qū)動:

Class.forName(“com.microsoft.sqlserver.SQLServerDriver”);DriverManager.getConnection("jdbc:microsoft:sqlserver//localhost[:port];database=database_name","login","passwd");DB2JDBC驅(qū)動:

Class.forName(“.DB2Driver”);DriverManager.getConnection("jdbc:db2://localhost:port/datasoure","login","passwd");6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)3.建立與數(shù)據(jù)庫的連接1)創(chuàng)建一個(gè)Connection的對象格式:

Connectioncon=DriverManager.getConnection(URL,login,passwd);2)執(zhí)行數(shù)據(jù)庫的SQL操作創(chuàng)建一個(gè)Statement對象,使用該對象的方法集執(zhí)行SQL命令,以獲得執(zhí)行的結(jié)果集。格式:Statementstm=con.createStatement();

利用驅(qū)動管理器DriverManager類的createStatement()方法,創(chuàng)建一個(gè)Statement對象實(shí)例。3)執(zhí)行JDBC語句,得到處理結(jié)果

格式:ResultSet

rs=stat.executeQuery(sql);while(rs.next()){××變量名=rs.get××(列名或列號);……}4.關(guān)閉連接:rs.close();stm.close();con.close();

6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)Statement對象的常用方法(針對不同的SQL處理的功能,選用不同的方法):數(shù)據(jù)處理語言(DML)(執(zhí)行SQLINSERT,UPDATE或DELETE等語句)intexecuteUpdate(Stringsql)返回變化行的數(shù)目值數(shù)據(jù)查詢語言(DQL)(執(zhí)行SQLSELECT語句)ResultSetexecuteQuery(Stringsql)返回對象信息可能返回多個(gè)結(jié)果的SQL語句booleanexecute(Stringsql)(聯(lián)合其他方法獲得結(jié)果)

6.1Java數(shù)據(jù)庫連接java數(shù)據(jù)庫連接Java程序設(shè)計(jì)6.2Java數(shù)據(jù)庫操作Java程序設(shè)計(jì)數(shù)據(jù)庫預(yù)處理技術(shù)訪問數(shù)據(jù)庫的缺陷:SQL語句是訪問和操作數(shù)據(jù)庫處理的機(jī)制,屬于高級用戶接口形式,需要DBMS的SQL解釋器轉(zhuǎn)換成系統(tǒng)的底層(內(nèi)部)命令執(zhí)行之。頻繁地向DBMS提交SQL語句,將增大DBMS的運(yùn)行成本,形成制約數(shù)據(jù)庫運(yùn)行效率的瓶頸。PrepareStament6.2Java數(shù)據(jù)庫操作java數(shù)據(jù)庫連接Java程序設(shè)計(jì)PrepareStament處理的方法原理:在SQL語句提交DBMS之前,將SQL語句解釋為數(shù)據(jù)庫系統(tǒng)的底層(內(nèi)部)命令,規(guī)避DBMS對SQL語句的解釋過程,減輕DBMS的運(yùn)行負(fù)擔(dān)。方法:利用JDBC提供的PrepareStament接口,引用對象方法實(shí)現(xiàn)之。將SQL語句封裝在PrepareStament接口中,轉(zhuǎn)換成DBMS的底層(內(nèi)部)命令提交與數(shù)據(jù)庫處理PrepareStamentsqlConnectioncon=sql.prepareStament(Stringsql_commands)轉(zhuǎn)換的底層(內(nèi)部)命令,包括:executeUpdate()、executeQuery()、Execute()6.2Java數(shù)據(jù)庫操作Java程序設(shè)計(jì)Statement接口與PrepareStament接口

PrepareStament接口是Statement的子接口二者方法的差異:1.executeUpdate()、executeQuery()、Execute()在PrepareStament接口中無

需設(shè)置參數(shù),而在Statement的接口則需設(shè)置參數(shù)。2.PrepareStament接口實(shí)例封裝的是SQL語句編譯過的命令,而Statement接口實(shí)例僅封裝SQL的語句。3.PrepareStament接口對象的運(yùn)行效率優(yōu)于Statement接口6.2Java數(shù)據(jù)庫操作任務(wù)1會員信息的增刪改查Java程序設(shè)計(jì)任務(wù)1描述

使用數(shù)據(jù)庫JDBC技術(shù)對購物系統(tǒng)進(jìn)行管理,完成對會員信息的添加、刪除、信息的更新。任務(wù)分析:利用JDBC進(jìn)行數(shù)據(jù)庫的連接利用insert語句實(shí)現(xiàn)會員信息的添加利用delete語句實(shí)現(xiàn)會員信息的刪除利用update語句實(shí)現(xiàn)會員信息的更新利用select語句實(shí)現(xiàn)會員信息的查詢6.3異常處理機(jī)制異常(Exception)是指程序運(yùn)行過程中出現(xiàn)的可能會打斷程序正常執(zhí)行的事件或現(xiàn)象,例如用戶輸入錯(cuò)誤、除數(shù)為零、文件找不到、數(shù)組下標(biāo)越界、內(nèi)存不足等。為了加強(qiáng)程序的魯棒性(Robust),編寫程序時(shí)必須考慮到可能發(fā)生的異常(Abnormal)事件并做出相應(yīng)的處理。注意:Java的異常實(shí)際上是一個(gè)對象,這個(gè)對象描述了代碼中出現(xiàn)的異常情況。在代碼運(yùn)行異常時(shí),在有異常的方法中創(chuàng)建并拋出一個(gè)表示異常的對象,然后在相應(yīng)的異常處理模塊中進(jìn)行處理。方法調(diào)用堆棧Java程序設(shè)計(jì)?2016版Java程序設(shè)計(jì)4.10異常處理機(jī)制在Java中將異常情況分為Error和Exception兩大類。Error類:指較少發(fā)生的內(nèi)部系統(tǒng)錯(cuò)誤,由JVM生成并拋出,包括動態(tài)鏈接失敗、JVM內(nèi)部錯(cuò)誤、資源耗盡等嚴(yán)重情況,程序員無能為力,只能讓程序終止。Exception類:解決由程序本身及環(huán)境所產(chǎn)生的異常,有補(bǔ)救或控制的可能,程序員也可預(yù)先防范,增加程序的健壯性。Java語言中Exception可以分為:運(yùn)行時(shí)異常(RuntimeException):如被0除、數(shù)組下標(biāo)超范圍等異常,編譯時(shí)發(fā)現(xiàn)不了,只在能JVM運(yùn)行時(shí)才能發(fā)現(xiàn)。非檢查性異常用戶可以檢測也可以不檢測。編譯時(shí)異常:也稱為檢查性異常,Java編譯器要求Java程序必須通過捕獲或聲明所有的檢查性異常的方式進(jìn)行異常處理,否則編譯不能通過。Exception的概念、子類及其繼承關(guān)系Java程序設(shè)計(jì)?2016版6.2Java數(shù)據(jù)庫操作6.3異常處理機(jī)制Java程序設(shè)計(jì)4.10異常處理機(jī)制方式一:使用try…catch…finally結(jié)構(gòu)對異常進(jìn)行捕獲和處理。Try{......//可能產(chǎn)生異常的代碼}catch(異常類型1異常對象1){......//異常處理代碼}catch(異常類型2異常對象2){......//異常處理代碼}[finally{......//不管異常發(fā)生與否都執(zhí)行的代碼}]注意:如果有多個(gè)catch語句,那么捕獲父類異常的catch語句必須放在后面,否則它會捕獲它的所有子類異常,而使得子類異常catch語句永遠(yuǎn)不會執(zhí)行。

面向?qū)ο蟮漠惓L幚頇C(jī)制Java程序設(shè)計(jì)?2016版6.2Java數(shù)據(jù)庫操作6.3異常處理機(jī)制Java程序設(shè)計(jì)4.10異常處理機(jī)制方式二:在可能產(chǎn)生異常的方法定義首部用throws聲明拋出異常。語法格式:<類修飾符><返回值類型><方法名>([<形式參數(shù)列表>])[throws<異常類型列表>]{[<語句>]}JVM將類載入內(nèi)存后調(diào)用main()方法,main()方法再調(diào)用其它方法。在Java中,采用“誰調(diào)用,誰負(fù)責(zé)處理”的異常處理機(jī)制。面向?qū)ο蟮漠惓L幚頇C(jī)制Java程序設(shè)計(jì)?2016版6.2Java數(shù)據(jù)庫操作6.3異常處理機(jī)制Java程序設(shè)計(jì)4.10異常處理機(jī)制Java語言允許用戶在需要時(shí)創(chuàng)建自己的異常類型,用于表述JDK中未包括的其他異常情況。自定義異常類必須繼承Thowable或其子類,一般繼承Exception類。依據(jù)命名慣例,應(yīng)以Exception結(jié)尾。用戶自定義異常未被加入JRE的控制邏輯中,因此永遠(yuǎn)不會自動拋出,只能由手工創(chuàng)建并拋出,請查閱JDK文檔Exception類的內(nèi)容。語法格式:thrownew<自定義異常名>([實(shí)參數(shù)表])

自定義異常Java程序設(shè)計(jì)?2016版6.3異常處理機(jī)制Java程序設(shè)計(jì)4.11本章小結(jié)本章主要介紹了面向?qū)ο蠹夹g(shù)的高級部分,主要包括JVM內(nèi)存管理,類的重用,static、fianl、abstract關(guān)鍵字的使用,接口的定義和實(shí)現(xiàn),內(nèi)部類,對象的上溯造型和下溯造型,Java異常處理機(jī)制。通過本章的學(xué)習(xí),讀者能夠理解面向?qū)ο蟮睦^承和多態(tài)的概念,掌握類的繼承、方法重寫、super關(guān)鍵字、final關(guān)鍵字、抽象類和接口以及多態(tài),了解什么是異常、異常的處理方式、自定義異常。

Java程序設(shè)計(jì)6.3異常處理機(jī)制6.4java集合類Java程序設(shè)計(jì)為容納一組對象,最適宜的選擇應(yīng)當(dāng)是數(shù)組。而且假如容納的是一系列基本數(shù)據(jù)類型,更是必須采用數(shù)組。當(dāng)我們編寫程序時(shí),通常并不能確切地知道最終需要多少個(gè)對象。有些時(shí)候甚至想用更復(fù)雜的方式來保存對象。為解決這個(gè)問題,Java提供了集合類庫。使用Java集合的“缺點(diǎn)”是在將對象置入一個(gè)集合時(shí)丟失了類型信息。之所以會發(fā)生這種情況,是由于當(dāng)初編寫集合時(shí),那個(gè)集合的程序員根本不知道用戶到底想把什么類型置入集合。若指示某個(gè)集合只允許特定的類型,會妨礙它成為一個(gè)“常規(guī)用途”的工具,為用戶帶來麻煩。為解決這個(gè)問題,集合實(shí)際容納的是類型為Object的一些對象的句柄。

注意:在java之前,java集合會丟失容器中所有對象的數(shù)據(jù)類型,把所有對象都當(dāng)成Object類型出來,從java5增加泛型以后,java集合可以記住容器中對象的數(shù)據(jù)類型,從而可以編寫出更簡潔、健壯的代碼。集合類主要負(fù)責(zé)保存、盛裝其他數(shù)據(jù),因此集合類也被稱為容器類。集合類概述Java程序設(shè)計(jì)新的集合庫考慮到了“容納自己對象”的問題,并將其分割成兩個(gè)明確的概念:集合(Collection):一組單獨(dú)的元素,通常應(yīng)用了某種規(guī)則。在這里,一個(gè)List(列表)必須按特定的順序容納元素,而一個(gè)Set(集)不可包含任何重復(fù)的元素。映射(Map):一系列“鍵-值”對。從表面看,這似乎應(yīng)該成為一個(gè)“鍵-值”對的“集合”,但假若試圖按那種方式實(shí)現(xiàn)它,就會發(fā)現(xiàn)實(shí)現(xiàn)過程相當(dāng)笨拙。另一方面,可以方便地查看Map的某個(gè)部分。只需創(chuàng)建一個(gè)集合,然后用它表示那一部分即可。這樣一來,Map就可以返回自己鍵的一個(gè)Set、一個(gè)包含自己值的List或者包含自己“鍵-值”對的一個(gè)List。和數(shù)組相似,Map可方便擴(kuò)充到多個(gè)“維”,毋需涉及任何新概念。只需簡單地在一個(gè)Map里包含其他Map(后者又可以包含更多的Map,以此類推)。6.4java集合類Java程序設(shè)計(jì)Java.lang.ObjectcollectionSetListMapHashSetHashMapTreeMapTreeSetArrayListListedListJava的集合類主要由兩個(gè)接口派生而出:Collection和Map6.4java集合類Java程序設(shè)計(jì)Collection是個(gè)java.util下的接口,它提供了對集合對象進(jìn)行基本操作的通用接口方法。它有三個(gè)基本的方法:1.booleanadd(Objectobj):用于將一個(gè)對象放入到集合中,當(dāng)原有Collection對象改變后,它返回true;2.booleanaddAll(Collectioncol):將另一個(gè)Collection對象中的所有元素插入該Collection對象中,當(dāng)目標(biāo)Collection對象改變后,它將返回true;3.Iteratoriterator():它將返回一個(gè)Iterator(遍歷器)接口對象。注意:Collection接口是層次結(jié)構(gòu)中的根接口,構(gòu)成Collection的單位稱為元素。Collection接口通常不能直接使用,但該接口提供了添加元素、刪除元素、返回Collection集合中的元素個(gè)數(shù)以及清空整個(gè)集合等方法。Collection接口6.4java集合類Java程序設(shè)計(jì)順序是List最重要的特性;它可保證元素按照規(guī)定的順序排列。List為Collection添加了大量方法,以便我們在List中部插入和刪除元素(只推薦對LinkedList這樣做)。List也會生成一個(gè)ListIterator(列表反復(fù)器),利用它可在一個(gè)列表里朝兩個(gè)方向遍歷,同時(shí)插入和刪除位于列表中部的元素(同樣地,只建議對LinkedList這樣做)。List的具體實(shí)現(xiàn)類常用的有ArrayList和LinkedList。—ArrayList從其命名中可以看出它是一種類似數(shù)組的形式進(jìn)行存儲,因此它的隨機(jī)訪問速度極快?!狶inkedList的內(nèi)部實(shí)現(xiàn)是鏈表,它適合于在鏈表中間需要頻繁進(jìn)行插入和刪除操作。注意:由于List接口和Set接口都繼承了Collection接口,因此這些方法對List集合和Set集合都是通用的List接口6.4java集合類Java程序設(shè)計(jì)ArrayList是List接口的大小可變數(shù)組的實(shí)現(xiàn)。允許包括null在內(nèi)的所有元素。每個(gè)ArrayList實(shí)例都有一個(gè)容量。該容量是指用來存儲列表元素的數(shù)組的大小,它總是至少等于列表的大小。隨著向ArrayList中不斷添加元素,其容量也自動增長。List接口->ArrayList類方法方法說明add(Objecto)將指定的元素添加到此列表的尾部add(intindex,Objecto)將指定元素插入到此列表中的指定位置get(intindex)返回此列表中指定位置上的元素remove(intindex)移除此列表中指定位置上的元素size()返回此列表中的元素?cái)?shù)set(intindex,Objecto)用指定的元素替代此列表中指定位置上的元素contains(Objecto)如果此列表中包含指定的元素,則返回true6.4java集合類Java程序設(shè)計(jì)LinkedList是List接口的鏈接列表實(shí)現(xiàn)。在一般情況下,LinkedList和ArrayList在操作上非常相似,它們僅僅有一點(diǎn)點(diǎn)區(qū)別:ArrayList在尾部插入數(shù)據(jù)的效率比LinkedList高,LinkedList更適用于隨機(jī)地在任意位置添加刪除數(shù)據(jù)。LinkedList提供了對尾部和頭部的添加與刪除操作方法。相比較ArrayList而言,多出的方法如下頁表所示。方法名方法說明voidaddFirst(Ee)將指定元素插入到此列表的開頭voidaddLast(Ee)將指定元素添加到此列表的結(jié)尾EgetFirst()返回此列表的第一個(gè)元素EgetLast()返回此列表的最后一個(gè)元素EremoveFirst()移除并返回此列表的第一個(gè)元素EremoveLast()移除并返回此列表的最后一個(gè)元素List接口->LinkedList類6.4java集合類Java程序設(shè)計(jì)Java中的Iterator功能比較簡單,并且只能單向移動:

(1)使用方法iterator()要求容器返回一個(gè)Iterator。第一次調(diào)用Iterator的next()方法時(shí),它返回序列的第一個(gè)元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。

(2)使用next()獲得序列中的下一個(gè)元素。

(3)使用hasNext()檢查序列中是否還有元素。

(4)使用remove()將迭代器新返回的元素刪除。

Iterator是Java迭代器最簡單的實(shí)現(xiàn),為List設(shè)計(jì)的ListIterator具有更多的功能,它可以從兩個(gè)方向遍歷List,也可以從List中插入和刪除元素。Iterator(迭代器)6.4java集合類Java程序設(shè)計(jì)packagecollection;importjava.util.*;publicclassTest{ publicstaticvoidmain(String[]args){Collectionlist=newArrayList();//創(chuàng)建一個(gè)集合//向集合添加數(shù)據(jù)

list.add("a");list.add("b");list.add("c");//調(diào)用Iterable的forEach()默認(rèn)方法來遍歷集合元素list.forEach(System.out::println);}}abc6.4java集合類Java程序設(shè)計(jì)Set擁有與Collection完全相同的接口,所以和兩種不同的List不同,它沒有什么額外的功能。相反,Set完全就是一個(gè)Collection,只是具有不同的行為(提示:這是多態(tài)最理想的應(yīng)用:用于表達(dá)不同的行為)。添加到Set的每個(gè)元素都必須是獨(dú)一無二的;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論