posts - 156,  comments - 601,  trackbacks - 0

          我的評論

          共3頁: 上一頁 1 2 3 
          re: (原創)Java實現一個自動排序List x.matthew 2008-04-17 15:05  
          @ZelluX
          ZelluX你好,這樣吧,我們把問題都分開來講吧。
          1. 關于用繼承還是組合,我已經表面了我的意見。
          2.關于LinkedList,我已經理解你的意思。這里我要強調是原來我原先的實現方式是
          for(Object:object:List)這種每次都一次比較compare
          與現在折半查找,比較O(logn)的比較。上面你也把代碼拿出來了,也看到LinkedList是按從最一點,一個對象一個對象找,找的只是取它的next或previous地址引用(雖然java是值傳遞的,但這個值保存的內容是地址,這里是我說的地址引用意思)。這樣如果拿10個數據來講,各說最差的結果,那就是插入到最后。
          第一種,應該要花費定位10次,比較10次。
          第二種,應該是定位11次雙向鏈表(5次+3次+2次+1次),比較四次
          我是綜合一起考慮的。

          3.關于取名這塊,的確我剛才沒有理解你的意思,list不應該是有排序,所以這樣取名的確是錯誤的,謝謝你提醒。

          @流浪者
          關于用繼承還是組合,還是得看具體情況而定。但一般而言如果我們使用的是Java的基礎類,這個基本上是很少改動,而且他本身已經有一套非常完善的接口定義做支持,所以建議還是使用繼承。如果要擴展的類修改比較大,有可能將還會被廢棄,建議使用composit或是適配器模式將其進行擴展,以減少耦合。

          關于這個工具來源,主要是本人一個項目需要用到,如果用treeset的話,不能保存相同的值,所以使用起來不便,所以才去實現這個類。在這個也給大家介紹一個工具類叫 TreeList在apache commons-collections項目中,它也是基于二叉樹結構實現的,效率很不錯。

          BTW:看到大家的回復,本人非常高興也非常感謝大家。
          re: (原創)Java實現一個自動排序List x.matthew 2008-04-17 14:12  
          @ZelluX
          可能你誤解我的意思了。
          List有序只是按照你插入的順序,與排序完全是兩個概念。
          如果要說定位和比較那個效率好,你可以看一下LinkedList的源代碼實現就知道了。其實它就只是一個地址的引用而以。
          關于第一點,我承認composite從耦合性和擴展來講,是比較繼承要好。但也得看具體的實現應用的。這個并不是一個絕對一定要按這個說法做,我的理由還是上面所說的。針對變化這塊,因為java 的util類庫已經是很穩定的,變化的可能性幾乎為零。
          re: Spring 安全認證框架2.0.0 發布! x.matthew 2008-04-17 13:08  
          @leekiang
          你說得很對,Acegi最初作為Spring的一個子項目加入到SpringSource公司(之前叫interface21)下。目前官方網站域名沒有變動。
          http://www.acegisecurity.org/。項目名稱已經統一改成Spring Security.
          re: (原創)Java實現一個自動排序List x.matthew 2008-04-17 12:03  
          @ZelluX
          謝謝ZelluX的回復。
          下面是對你的兩個問題回復
          1. 為什么我從原來的composite改成了extends。
          的確從偶合上來看,composite的確要把繼承好,但從應用的上來看,因為Java本身提供List接口,所以使用方便性來講extends更優,而且list是線程不安全的,如果要加同步控制的話直接用Collections.synchronizedList即可。利大于弊
          2. 關于效率的問題,謝謝你提醒。的確LinkedList不像ArrayList,它是需要從頭到尾掃描的。但定位與執行比較的操作其使用的效率單位應該不是一個級別的。雖然目前來看,遍歷指針的次數多了,但比較的次數少了,最多O(logn)次。好,接下來看你一直堅持的紅黑樹,我的理解應該是一個自平衡二叉查找樹吧。
          因為在我這邊應用,經常會有插入一個節點再移去多余的一個節點操作。保證集合里永遠只有當初設定的個數
          那紅黑樹的效率應該O(log n)時間內做查找,插入和刪除,這里的n 是樹中元素的數目,這樣的話,如果要執行你我上面一個操作的話,至少要執行四次O(logn), 一次查找,一次插入,一次查找,一次刪除。單做比較次數就用O(2logn)次吧。
          最后,還是很感謝你的回復!
          re: (原創)Java實現一個自動排序List x.matthew 2008-04-17 09:57  
          改進了一下代碼,改成使用的折半插入法,在集合量很大的時候有一個速度有一個比較大的提升.
          re: (原創)Java實現一個自動排序List x.matthew 2008-04-17 08:14  
          @faen
          因為我用的LinkedList, 插入排序的我覺得速度是可以的。當然也有好的算法,如二分法等。但你回復讓我摸不著頭腦,如果你覺得有好的算法應該提出來讓大家看一下嗎?
          @demo
          支持集群的方式,你是指日志的合并嗎?如果是日志的合并處理這個應該實現不會太難,現在的實現也是單獨一個后臺程序去分析日志,只需把多個日志文件按時間重新排列組合即可。
          關于現在開源的項目中,我也參考了很多。我希望能把所有它們有的或沒有的都集成起來,用更直觀的方式(圖表)展現出來。
          謝謝大家的支持,我在此表示感謝!!!代碼雖然是全都是我開發,但因為利用了公司資源所以在此不便公開,但我會花時間,把設計圖重新整理出來,分享給大家。也希望大家能繼續支持我。

          @Always BaNg.
          關于標準變量這塊我再查一下資料,如果需要修改過來也是很方便的。

          @luchunwei
          嗯,不過commons-configuration的確是一個很不錯的項目,他支持很多格式的配置文件讀取,包括有xml的。
          其實通過設置可以加載一個目錄的,下面是一個例子
          java -Djava.ext.dirs="c:\lib" org.xmatthew.spy2servers.console.Main start
          TO iamzzb。嗯,帶上短信通知會讓這個報警更實用,接下來我會選一個短信類庫來實現,同時還會開發帶JMS消息發送功能的插件。
          回復 BeanSoft

          關于安全性方面,可以通過網絡安全設置來解決。
          性能這塊,通過測試開啟jmx服務對服務其本身影響很少,基本上jmx服務也是sun官方推薦使用的技術。
          所以從這兩方對比而言,收益遠遠大于付出的。

          謝謝BeanSoft回復。
          非常感謝Ben,類庫已經更新,由于附件上傳的大小限制,現在已經分成兩個類庫包 lib.rar和lib2.rar,解壓后把*.jar放到lib目錄中即可。
          文章已經更新,源代碼已經整理并上傳。
          共3頁: 上一頁 1 2 3 
          主站蜘蛛池模板: 绥中县| 大同县| 南安市| 新建县| 治多县| 泌阳县| 镇坪县| 安泽县| 集安市| 石狮市| 岳西县| 宁远县| 那坡县| 盈江县| 晋城| 金平| 理塘县| 康马县| 得荣县| 东台市| 涞水县| 罗江县| 松原市| 会泽县| 双辽市| 汉中市| 政和县| 天峻县| 光泽县| 习水县| 天水市| 万年县| 达日县| 孝义市| 福州市| 定远县| 来安县| 连云港市| 大田县| 霍山县| 锡林浩特市|