posts - 176, comments - 240, trackbacks - 0, articles - 7
              在程序中需要返回一個(gè)數(shù)據(jù)集合的時(shí)候, 應(yīng)該盡量選用標(biāo)準(zhǔn)的Java集合類接口,例如List, Map等. 有時(shí)也見到有人選擇返回Iterator對(duì)象, 一般情況下這不是很好的選擇. Iterator對(duì)象的功能有限, 而且存在一種即時(shí)消費(fèi)的特點(diǎn), 我們一般不能把一個(gè)Iterator保存起來留待以后使用. 而且JDK提供的集合類也不能從Iterator直接構(gòu)造出來,例如沒有 new ArrayList(myIterator), 這樣為數(shù)據(jù)復(fù)制造成一定的困難.
              Iterator在理論上的好處之一是可以支持延遲加載數(shù)據(jù), 但是實(shí)現(xiàn)起來比較繁瑣而且單條加載也是比較低效的. 在witrix平臺(tái)中如果需要延遲加載數(shù)據(jù)集合, 我一般選擇使用IPageViewer接口
                 interface IPageViewer{
                     public List getAll();
                     public int getTotalCount();
                     public List listPage(int startPos, int maxCount);
                 }
              IPageViewer通過getAll()可以轉(zhuǎn)換到List, 也可以通過 new Pager(pageViewer,pageSize).itemIterator()得到單條數(shù)據(jù)的Iterator, 其內(nèi)部采用分頁加載模式. 搜索引擎返回的結(jié)果和數(shù)據(jù)庫查詢的結(jié)果都可以使用這一接口.
          主站蜘蛛池模板: 稻城县| 凉城县| 安陆市| 常德市| 富川| 西峡县| 凭祥市| 灵山县| 天水市| 如东县| 娄烦县| 建水县| 安乡县| 额济纳旗| 迁西县| 沙坪坝区| 枝江市| 深泽县| 无棣县| 永和县| 麻江县| 辽中县| 沐川县| 门头沟区| 佛冈县| 静海县| 浠水县| 哈密市| 新民市| 铜鼓县| 乐山市| 福贡县| 临泽县| 通州区| 昌吉市| 始兴县| 团风县| 延吉市| 锦州市| 疏附县| 邵东县|