亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Java集合的房源出租信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2021-03-28 23:13:14吳飛燕
        河南科技 2021年29期

        吳飛燕

        摘 要:在Java面向?qū)ο蟪绦蛟O(shè)計(jì)中,創(chuàng)建數(shù)組時(shí)必須指明數(shù)組的長(zhǎng)度,且長(zhǎng)度固定、不能改變,同一個(gè)數(shù)組只能存放同一種數(shù)據(jù)類型的數(shù)據(jù)。然而,在實(shí)際情況下,數(shù)據(jù)的個(gè)數(shù)和類型需要根據(jù)實(shí)際情況進(jìn)行相應(yīng)的調(diào)整的。為此,提出選擇Java中合適的集合容器List接口、ArrayList實(shí)現(xiàn)類來(lái)設(shè)計(jì)并實(shí)現(xiàn)房源出租信息系統(tǒng)。實(shí)踐表明,該方法可以提高開(kāi)發(fā)效率。

        關(guān)鍵詞:Java集合框架;List接口;ArrayList類;房源出租

        中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2021)29-0015-04

        Design and Implementation of House Rental Information

        Management Based on Java Collection

        WU Feiyan

        (College of Internet of Things, Jiangxi Teachers College,Yingtan Jiangxi 335000)

        Abstract: In java object-oriented programming, when creating an array, the length of the array must be specified, and the length is fixed and cannot be changed. The same array can only store data of the same data type. However, in practice, the number and type of data are adjusted accordingly. Therefore, to propose to select the appropriate collection container list interface and ArrayList implementation class in Java to design and implement the house rental information system. Practice shows that this method can improve the development efficiency.

        Keywords: Java collection framework;List interface;ArrayList class;house rental

        集合(Collection)[1]也叫作容器(Container),是一種將多個(gè)元素聚合起來(lái)組成一個(gè)單元的對(duì)象。它常常用來(lái)儲(chǔ)存、檢索、操作聚合的數(shù)據(jù)。集合與數(shù)組的區(qū)別有以下3點(diǎn):①長(zhǎng)度區(qū)別,數(shù)組的長(zhǎng)度固定,不可更改,而集合長(zhǎng)度可變,在保證不超出內(nèi)存的前提下,可以隨時(shí)添加和刪除元素;②內(nèi)容區(qū)別,數(shù)組可以存放基本類型數(shù)據(jù)和引用類型數(shù)據(jù),集合只能存放引用類型數(shù)據(jù);③元素內(nèi)容區(qū)別,數(shù)組只能存儲(chǔ)同一種類型的數(shù)據(jù),而集合可以存儲(chǔ)不同類型的數(shù)據(jù)。

        1 Java集合框架

        Java集合框架[2](Java Collections Framework)是Sun公司發(fā)布的Java應(yīng)用程序編程接口(Application Programming Interface,API)的重要組成部分,存放于java.util包中。Java平臺(tái)的集合框架提供了一個(gè)表示和操作對(duì)象集合的統(tǒng)一架構(gòu),允許用戶獨(dú)立地操作各種數(shù)據(jù)結(jié)構(gòu)而不需要了解具體的實(shí)現(xiàn)。Java集合框架包含大量集合接口(Interfaces),具有這些接口的實(shí)現(xiàn)類(Implementations)和操作它們的算法(Algorithms)。接口是代表集合的抽象數(shù)據(jù)類型;實(shí)現(xiàn)類是集合接口的具體實(shí)現(xiàn),從本質(zhì)上講,它們是可重復(fù)使用的數(shù)據(jù)結(jié)構(gòu);算法是實(shí)現(xiàn)集合接口對(duì)象里的方法執(zhí)行的一些有用計(jì)算,如搜索和排序。

        Java集合框架是一個(gè)統(tǒng)一的框架,為了表現(xiàn)和操縱集合,作為Java應(yīng)用程序中的工具類,為開(kāi)發(fā)人員提供了一個(gè)良好的應(yīng)用程序接口。一個(gè)集合就是存儲(chǔ)一組對(duì)象的容器,通常將這些對(duì)象稱為集合的元素(Element)。Java集合框架支持三種類型集合,分別是集(Set)、線性表(List)和映射(Map)。集(Set)的特點(diǎn)是集合中的對(duì)象不按照特定的方式排序,而且對(duì)象不允許重復(fù),集本身不能被實(shí)例化,但可以作為類型使用。線性表(List)集合中的對(duì)象按照索引位置排序,對(duì)象可以重復(fù),允許按照對(duì)象在集合中的位置檢索對(duì)象。映射(Map)集合中存放的每一個(gè)元素包含一對(duì)鍵值對(duì)象,其中鍵對(duì)象不能重復(fù),而值對(duì)象可以重復(fù)。Java集合框架結(jié)構(gòu)如圖1所示。

        從Java集合框架圖中可以看出,其定義了6個(gè)接口,分別是Collection接口、Iterator迭代接口、List接口、Comparable自定義比較接口、Set接口和Map接口;定義了8個(gè)實(shí)現(xiàn)類,分別是ArrayList、LinkedList、TreeMap、HashMap、Vector、Stack、HashSet和TreeSet;定義了5個(gè)抽象類,分別是AbstractSet、AbstractList、AbstractSequentialList、AbstractCollection、AbstractMap;定義了2個(gè)輔助類,分別為Collections和Arrays。Java集合框架具有性能高、編程工作量少、開(kāi)發(fā)成本低,以及較強(qiáng)的通用性、可操作性、可拓展性等優(yōu)點(diǎn)。

        2 接口與實(shí)現(xiàn)類

        該部分主要分析在本研究中所用到的接口與實(shí)現(xiàn)類。

        2.1 List接口

        在編程中最常用到的是List接口[3]。List接口的重要屬性是對(duì)象按次序排列,它保證以某種特定次序來(lái)維護(hù)元素。List接口繼承并擴(kuò)展了Collection,即增加了更加豐富的對(duì)象管理操作。

        List接口繼承了Collection的Iterator( )方法。該方法返回一個(gè)Iterator對(duì)象,使用它可以對(duì)List進(jìn)行向后遍歷。List還能通過(guò)ListIterator( )方法獲取更加強(qiáng)大的迭代器ListIterator,通過(guò)ListIterator( )方法可以對(duì)List進(jìn)行向前、向后雙向遍歷對(duì)象集,并能在List中進(jìn)行元素的插入和刪除。List接口的定義如下:public interface List<E>extends Collection<E>。與Collection不同的是,在List接口中大量擴(kuò)充了Collection接口,擁有比Collection接口中更多的定義方法,其中有些方法較為常用。List接口中的主要方法為:第一,public void add(int index,E element),指定處添加元素;第二,int indexOf(Object o),返回第一個(gè)出現(xiàn)元素o的位置。

        2.2 ArrayList類

        ArrayList類實(shí)現(xiàn)了List接口[4],實(shí)現(xiàn)了所有可選擇列表操作,并允許包括null在內(nèi)的所有元素。ArrayList是大小可變的動(dòng)態(tài)數(shù)組。每個(gè)ArrayList實(shí)例都有一個(gè)容量,該容量用來(lái)存儲(chǔ)列表元素的數(shù)組大小,它總是至少等于列表的大小。隨著向ArrayList中不斷添加元素,容器的容量也會(huì)自動(dòng)增加。添加大量元素前應(yīng)用程序可以使用ensureCapacity操作來(lái)增加ArrayList實(shí)例的容量,這可以減少遞增式再分配的數(shù)量。ArrayList類實(shí)現(xiàn)不是同步的,如果多個(gè)線程同時(shí)訪問(wèn)一個(gè)ArrayList實(shí)例,而其中至少一個(gè)線程從結(jié)構(gòu)上修改了列表,那么它必須保持外部同步。ArrayList類中的主要方法為:①public ArrayList(),創(chuàng)建一個(gè)初始容量為10的空列表;②public Object get(int index),返回此列表中指定的元素;③public Object remove(int index),刪除一個(gè)對(duì)象;④public Object[] toArray(),將集合變?yōu)閷?duì)象數(shù)組,對(duì)于一些特定的操作數(shù)組會(huì)獲得更快的處理。

        2.3 LinkedList類

        LinkedList類是List接口的鏈接列表實(shí)現(xiàn)類。LinkedList類除了實(shí)現(xiàn)List接口外,還為在列表開(kāi)頭和結(jié)尾的get、remove和insert元素提供了統(tǒng)一的命名方法。這些操作允許將鏈接列表用作堆棧、隊(duì)列或者雙端隊(duì)列。LinkedList類的主要方法為:①void addFirst(Object o),將對(duì)象o添加到列表的開(kāi)頭;②void addLast(Object o),將對(duì)象o添加到列表的結(jié)尾;③Object getFirst(),返回列表開(kāi)頭的元素;④Object removeFirst(),刪除并且返回列表開(kāi)頭的元素;⑤set(int index,E element),將此列表中指定位置的元素替換為指定的元素。

        ArrayList類和LinkedList類的區(qū)別如下。ArrayList類是以可變數(shù)組實(shí)現(xiàn)完成的List接口,在ArrayList類數(shù)據(jù)結(jié)構(gòu)中,由于地址連續(xù),一旦存儲(chǔ)好了數(shù)據(jù),快速隨機(jī)訪問(wèn)的操作效率較高,但當(dāng)元素的插入或刪除發(fā)生在List中央位置時(shí),ArrayList類需要移動(dòng)數(shù)據(jù),所以效率較低。對(duì)ArrayList類而言,建議使用ListIterator來(lái)進(jìn)行向前或者向后遍歷,而不宜采用其來(lái)進(jìn)行元素的插入和刪除,花費(fèi)的成本遠(yuǎn)遠(yuǎn)高于LinkedList類。LinkedList類是以雙向鏈表(Double-Linked-List)實(shí)現(xiàn)完成的List容器。在LinkedList類數(shù)據(jù)結(jié)構(gòu)中,地址任意,開(kāi)辟內(nèi)存不需要等待連續(xù)地址,對(duì)插入和刪除元素操作的效率較高,它還提供addFirst、getFirst、getFirst、removeFirst、removeLast等方法,可用于實(shí)現(xiàn)棧和隊(duì)列的操作。但是因?yàn)椴樵儾僮鬟^(guò)程中要移動(dòng)指針,查詢性能較低,所以不適合快速隨機(jī)訪問(wèn)。

        3 房源出租信息系統(tǒng)功能模塊設(shè)計(jì)

        房源信息是房屋出租系統(tǒng)的基本模塊。用戶登錄房屋出租系統(tǒng)后可以添加房源信息、修改房源信息、刪除房源信息和查詢房源信息。

        添加房源信息是將輸入的房源信息添加到系統(tǒng)中。添加房源之前,首先要根據(jù)房源編號(hào)查詢?cè)摲吭葱畔⑹欠翊嬖冢绻呀?jīng)存在,則需要輸入新的房源編號(hào);如果不存在,則將房源添加至系統(tǒng)中,并顯示添加成功。

        修改房源信息功能是除了房源編號(hào)外,修改房源部分信息或者全部信息。修改房源信息首先要輸入房源編號(hào)查詢房源信息,如果不存在則顯示沒(méi)有該房源,否則輸出該房源信息;其次,輸入要修改的房源信息;最后修改房源信息。如果修改成功,則顯示房源信息修改成功,同時(shí)顯示新的房源信息。

        刪除房源信息功能是根據(jù)房源編號(hào)刪除指定房源信息。刪除房源信息首先要根據(jù)輸入的房源編號(hào)查詢房源信息,如果不存在則顯示房源信息不存在,否則顯示房源信息。其次,判斷是否真的刪除,如果取消則退出,如果選擇刪除則刪除房源信息。最后,判斷是否刪除成功,如果成功則顯示房源信息刪除成功,否則提示信息刪除失敗。

        查詢房源信息是根據(jù)房租價(jià)格、房源狀態(tài)、小區(qū)名稱、房源樓層等條件進(jìn)行查詢。如果查詢到房源信息,則顯示房源信息,否則,提示沒(méi)有找到符合條件的房源信息。

        4 修改房源信息流程設(shè)計(jì)

        由于篇幅受限,下面以修改房源信息為例進(jìn)行相應(yīng)說(shuō)明。根據(jù)任務(wù)分析,利用Microsoft Visio 2010畫圖工具,畫出修改房源信息流程圖,如圖2所示。首先輸入房源編號(hào),根據(jù)房源編號(hào)查詢房源信息,這時(shí)系統(tǒng)會(huì)判斷房源信息是否存在,若不存在,則顯示沒(méi)有該房源;若存在,則輸入修改的房源信息,并修改房源信息。此時(shí),系統(tǒng)再次判斷房源信息是否修改成功,若修改成功,則顯示修改成功;若修改失敗,則顯示修改失敗。

        5 修改房源信息模塊設(shè)計(jì)與實(shí)現(xiàn)

        5.1 房源信息實(shí)體類(House.java)設(shè)計(jì)

        房源信息實(shí)體類包括成員變量和成員兩部分。其中,成員變量有房源編號(hào)、小區(qū)名稱、物業(yè)公司、房屋類型、房屋狀態(tài)、房屋朝向、房屋價(jià)格、出租價(jià)格、房屋設(shè)施、房屋評(píng)價(jià)、建筑年限、房屋棟數(shù)、房屋樓層、房屋用途。成員方法是一組set/get屬性方法,方便成員變量初始化,可以通過(guò)eclipse中的源碼(s)菜單項(xiàng)中的生成Getter和Setter功能自動(dòng)生成。部分代碼如下:

        public class House {//創(chuàng)建房屋實(shí)體類

        private String houseId;//房源編號(hào)

        private String cellName;//小區(qū)名稱

        private String propertyCompany;//物業(yè)公司

        private String houseType;//房屋類型

        private String houseFloor;//房屋樓層

        private String housePrice;//購(gòu)房?jī)r(jià)格

        private String rentPrice;//出租價(jià)格

        private String constructYear;//建筑年限

        private String houseFacility;//房屋設(shè)施

        private String houseEvaluate;//房屋評(píng)價(jià)

        public String getHouseId() {//獲取房源編號(hào)

        return houseId;

        }

        public void setHouseId(String houseId) {//設(shè)置房源編號(hào)

        this.houseId = houseId;}

        }

        5.2 房源信息管理接口實(shí)現(xiàn)類(HouseDaoImpUseOfArrayList.java)設(shè)計(jì)

        通過(guò)房源信息實(shí)現(xiàn)類實(shí)現(xiàn)接口中所有抽象方法,實(shí)現(xiàn)類中的主要代碼如下:

        public boolean modifyHouse(String sid,House house){

        boolean flag=false;

        House originalhouse=this.selectById(sid);//根據(jù)Id找房源

        if(originalhouse!=null){ //若原有房源不為空

        System.out.println("該房源存在,可以修改!");

        int index=list.indexOf(originalhouse);//獲取原房源索引

        list.set(index,house); //用set方法修改原先的房源信息

        flag=true;

        }else{

        System.out.println("房源不存在,無(wú)法修改信息!");

        }

        return flag;//返回flag的值

        }

        }

        5.3 修改房源信息實(shí)現(xiàn)效果

        修改房源信息執(zhí)行過(guò)程如圖3所示。

        6 結(jié)語(yǔ)

        房源出租信息系統(tǒng)由添加房源、修改房源、刪除房源、查詢房源4個(gè)功能模塊構(gòu)成。在設(shè)計(jì)修改房源信息功能模塊的過(guò)程中,根據(jù)設(shè)計(jì)的流程圖,使用集合容器中List接口的ArrayList列表存放多個(gè)房源信息,通過(guò)查詢房源信息編號(hào)selectById()、修改房源信息modifyHouse()等方法實(shí)現(xiàn)房源信息修改。

        參考文獻(xiàn):

        [1]徐秀勤.淺談Java中基于集合的應(yīng)用類的教學(xué)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2019(27):87-88.

        [2]段莎莉.淺談JAVA集合框架及其應(yīng)用[J].信息技術(shù)與信息化,2020(10):104-106.

        [3]韓慶安.Java容器類的選擇[J].數(shù)碼世界,2019(10):57.

        [4]胡建華,鄢旭.基于數(shù)據(jù)結(jié)構(gòu)與簡(jiǎn)化內(nèi)存模型的Java集合教學(xué)方法研究[J].計(jì)算機(jī)教育,2018(5):30-32.

        久青草国产视频| 国产99视频精品免视看7| 亚洲国产av精品一区二区蜜芽| 日日摸夜夜添夜夜添无码免费视频| 精品免费看国产一区二区| 亚洲男人天堂2017| 日本中文字幕一区二区在线观看 | 亚洲av无码乱码在线观看性色| 国产一线二线三线女| 国产精品久久久一本精品| 久久黄色精品内射胖女人| 加勒比hezyo黑人专区| 欧美性xxxx狂欢老少配| 欧美视频在线观看一区二区| 女优av福利在线观看| 亚洲av区,一区二区三区色婷婷| 国产精品久久久久久av| 国产超碰人人模人人爽人人喊| 日韩国产欧美视频| av永远在线免费观看| 三级黄色片免费久久久 | 精品久久久亚洲中文字幕| 日韩av一区二区观看| 亚洲成在人网站av天堂| 国产精品亚洲专区无码web | 国产av国片精品jk制服| 人妻av一区二区三区精品| 偷拍自拍一区二区三区| 最新国产不卡在线视频| 色五月丁香五月综合五月| 亚洲a∨无码一区二区| 亚洲色图视频在线播放| 日本一区二区三区视频免费观看| 久久精品国产亚洲av麻豆| 亚州无线国产2021| 免费女女同黄毛片av网站| 日韩精品专区av无码| 亚洲精品国产成人AV| 东京道一本热码加勒比小泽| 欧美性色欧美a在线播放| 制服丝袜人妻中文字幕在线|