亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

面向對象編程:Java中的抽象數據類型

2020-01-31 16:52:35
字體:
來源:轉載
供稿:網友
文章來源:互聯網 作者:PaleSting/CSDN

 在本文中,我們將考察Java中的數據類型,但是我們將介紹抽象數據類型(ADT)的概念。我們還將通過介紹Java Collections Framework(Java 集合架構)來學習Java定義的一些ADT。

   ADT

   一個ADT是一個僅由保存的數據類型和可能在這個數據類型上進行的操作定義的。開發者們只能通過ADT的操作方法來訪問ADT的屬性,而且他們不會知道這個數據類型內部各種操作是如何實現的。
  
   在Java中,我們常常使用一個接口來給出一個操作集合而不需要透露這些操作實現的細節。記住一個接口定義了一個方法集而Java類必須實現這個集合以便滿足它的強制性條件或者實現這個接口的一個實例。
  
   線性表,堆棧和隊列

  當我們談論ADT的時候,經常會說到線性表,堆棧和隊列。我們不會討論這些數據結構的細節,但我們會討論為什么它們被稱為ADT。
  
   一個線性表是有限個元素的集合,其元素以線性的方式進行排列并提供對它的元素的直接訪問。一個堆棧是一個后進先出(LIFO)的有序線性表,元素從堆棧頭加入,并從堆棧頭取出。一個隊列是一個先進先出的有序線性表,元素從隊列尾加入,并從隊列頭取出。
  
   線性表,堆棧和隊列的內部結構可以用許多方式實現。例如,我們可以使用一個有序數組或者一個鏈表來實現每個結構。關鍵的一點是不論你如何實現其內部結構,它對外的接口總是不變的。這使得你能夠修改或者升級底層的實現過程而不需要改變公共接口部分。

  Java 集合架構

  Java 2軟件開發包(SDK)提供了一些新類來支持大多數常用的ADT。這些類被稱為Java集合類(類似于MFC中的集合類),它們協同工作從而形成Java 集合架構。這個集合架構提供了一套將數據表示成所謂的集合抽象數據的接口和類。
  
   java.util.Collection接口被用來表示任意的成組的對象,也就是元素。這個接口提供基本的諸如添加,刪除,和查詢這樣的操作。Collection接口還提供了一個iterator方法。iterator方法返回java.util.Iterator接口的一個實例。而Iterator接口又提供了hasNext, next, 和 remove方法。使用Iterator接口提供的方法,你可以從頭到尾循環遍歷一個Collection對象中的實例并能夠安全的刪除iterator(游標)所表示的元素。
  
   java.util.AbstractCollection 是所有集合架構類的基礎。AbstractCollection 類提供了對  java.util.Collection 接口中除iterator和size方法以外的所有方法的實現。這兩個例外的方法由所有繼承java.util.AbstractCollection的子類實現。
  
   實現一個接口的類必須提供對所有接口方法的實現。因為集合架構中的一些接口方法是可選的,所以必須有一種方法來通知調用者某種方法沒有實現。當一個可選的方法被實現而這個方法又并沒有被實現的時候,就會拋出一個UnsupportedOperationException 異常。UnsupportedOperationException 類繼承了RuntimeException 類。這使得調用者能夠調用所有的集合操作而不需要把每次調用都放在一個try-catch對里。
  
   List線性表

   List接口繼承了Collection接口并定義了一個允許相同元素存在的有序集合。List接口還附加了一些使用一個數值型索引值并基于元素在線性表中的位置來操作Collection中元素的方法。這些操作包括add,get,set和remove。

   List接口還提供了listIterator方法。這個方法返回java.util.ListIterator 接口的一個實例,這個實例能夠讓你從頭至尾或者從尾至頭的遍歷一個線性表。java.util.ListIterator 繼承了java.util.Iterator 接口。因此,它支持對它代表的Collection中的元素的添加和修改。

  下面的例子演示了如何從后向前遍歷一個列表的元素。要完成這個工作,必須在遍歷開始之前把ListIterator定位于列表最后一個元素之后。
  
   ListIterator iter = aList.listIterator(aList.size());
   while (iter.hasPrevious())
   System.out.println(iter.previous().toString());
   }
   集合架構提供了對List接口的兩個實現:LinkedList(鏈表)和ArrayList(數組列表,即靜態列表)。這兩個實現都支持對其元素的隨機訪問。一個ArrayList實例支持數組風格的操作并支持數組大小的改變操作。一個LinkedList的實例則提供了在列表開始和結尾添加,刪除和提供元素的顯式的支持。使用這些新方法,一個程序員可以簡單的把一個LinedList當做堆?;蛘哧犃惺褂茫缦拢?
  
   LinkedList aQueue = new LinkedList(aCollection);
   aQueue.addFirst(newElement);
   Object   anElement = aQueue.removeLast();
   LinkedList  aStack = new LinkedList(aCollection);
   aStack.addFirst(newElement);
   Object   anElement= aStack.removeFirst();
   表A中的代碼片段使用java.util.ArrayList 和 java.util.LinkedList演示了對java.util.List接口的實現實例的一些常用的操作。這些操作包括添加元素,隨機訪問元素和顯式的在列表尾刪除元素。
  
   知其然不知其所以然是大有好處的

   ADT提供了一個將對象公共接口中的操作和其具體的實現分開的強有力的工具。這使得一個ADT的實現可以不斷變化和演化同時保持其公共接口不變。Java集合架構提供了大量的接口和其實現用來代表基本元素的集合并可以用來創建有用的ADT。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品一区二区三区av| 欧美精品一区二区三区国产精品| 国产精品久久久久久网站| 久久免费视频在线| 国产成人拍精品视频午夜网站| 久久免费在线观看| 国产一区玩具在线观看| 色妞一区二区三区| 欧美成人小视频| 午夜精品一区二区三区在线播放| 欧美久久久精品| 亚洲欧美中文日韩在线v日本| 97国产成人精品视频| 91久久久国产精品| 国产99久久久欧美黑人| 91av福利视频| 欧美丰满少妇xxxx| 亚洲一区二区三区四区视频| 亚洲在线免费观看| 日韩av理论片| 国产日韩欧美一二三区| 伊人av综合网| 亚洲成人激情视频| 91视频免费在线| 亚洲美女福利视频网站| 国产成人精品一区| 一区二区三区动漫| 国产精品揄拍一区二区| 日韩经典中文字幕| 久久国产精品影视| 欧美在线激情网| 亚洲免费视频观看| 国产成人福利夜色影视| 美女av一区二区三区| 日韩美女在线看| 81精品国产乱码久久久久久| 亚洲自拍欧美色图| 成人欧美在线视频| 午夜精品福利在线观看| 91大神福利视频在线| 亚洲毛片一区二区| 欧美福利视频在线| 久久成人在线视频| 欧美一级成年大片在线观看| 精品国产一区二区三区久久久| 搡老女人一区二区三区视频tv| 欧日韩在线观看| 一区国产精品视频| 亚洲**2019国产| 欧美乱大交xxxxx| 91精品国产免费久久久久久| 日韩高清av一区二区三区| 亚洲国产成人精品久久| 久久人人爽亚洲精品天堂| 777午夜精品福利在线观看| 亚洲国产精品久久久| 亚洲国产小视频| 色悠久久久久综合先锋影音下载| 精品成人国产在线观看男人呻吟| 国产suv精品一区二区三区88区| 亚洲精品福利资源站| 欧美日韩精品在线| 日韩h在线观看| 亚洲精品久久久一区二区三区| 亚洲女人天堂网| 亚洲激情自拍图| 久久精品99国产精品酒店日本| 欧美另类极品videosbest最新版本| 91嫩草在线视频| 日韩亚洲欧美成人| 自拍偷拍免费精品| 日韩va亚洲va欧洲va国产| 欧美性视频网站| 午夜精品一区二区三区视频免费看| x99av成人免费| 欧美成年人在线观看| 一本一本久久a久久精品牛牛影视| 92国产精品久久久久首页| 欧美日韩国产在线看| 亚洲综合日韩在线| 91久久精品国产91性色| 26uuu另类亚洲欧美日本一| 成人欧美一区二区三区黑人| 2020国产精品视频| 亚洲美女免费精品视频在线观看| 精品自在线视频| 亚州国产精品久久久| 日韩暖暖在线视频| 国产女精品视频网站免费| 精品亚洲夜色av98在线观看| 午夜精品久久久久久久久久久久| 欧美日韩亚洲系列| 国产99久久精品一区二区永久免费| 免费97视频在线精品国自产拍| 韩国美女主播一区| 欧美亚洲在线播放| 久久久久久久av| 国产日韩精品在线播放| 欧美性资源免费| 成人美女av在线直播| 欧美国产精品人人做人人爱| 最近更新的2019中文字幕| 青草成人免费视频| 亚洲免费视频一区二区| 精品视频在线播放免| 激情亚洲一区二区三区四区| 国产精品自拍视频| 亚洲最新av网址| 国产91ⅴ在线精品免费观看| 亚洲91精品在线观看| 国产一区二区三区精品久久久| 日韩成人在线观看| 黄色成人av在线| 日韩69视频在线观看| 精品亚洲永久免费精品| 国产精品自产拍高潮在线观看| 国产精品999| 欧美激情精品久久久久久黑人| 成人久久18免费网站图片| 国产亚洲精品日韩| 精品久久久久久电影| 美女扒开尿口让男人操亚洲视频网站| 欧美一区二区大胆人体摄影专业网站| 成人国产在线视频| 日韩成人av在线播放| 97超级碰碰碰| 亚洲最大福利视频网| 国产在线98福利播放视频| 国产精品成人播放| 亚洲欧洲xxxx| 国产精品狼人色视频一区| 久久精品成人动漫| 国产精品久久久久久久app| 亚洲精品一区二区网址| 国产精品高精视频免费| 亚洲成人激情小说| 国产成人在线视频| 久久久久久久久91| 久久香蕉频线观| 欧美裸体视频网站| 亚洲精品午夜精品| 欧美日韩日本国产| 成人精品久久一区二区三区| 国产主播精品在线| 最近免费中文字幕视频2019| 欧美激情二区三区| 国产在线拍揄自揄视频不卡99| 日韩a**站在线观看| 国产精品亚洲网站| 国产成人啪精品视频免费网| 亚洲视频一区二区| 久久久综合av| 欧美老少做受xxxx高潮| 日韩中文字幕精品| www.欧美免费| 精品magnet| 亚洲国产另类 国产精品国产免费| 91在线免费视频| 尤物九九久久国产精品的特点| 91亚洲精品一区二区| 91在线色戒在线| 亚洲国产精品久久91精品| 精品中文字幕在线2019| 国产综合视频在线观看|